南天一柱 发表于 2018-8-29 14:04:08

linux学习--shell的脚本编程理解

  底层硬件的调配和控制由linux内核负责,内核提供了API供我们编程调用,从而使用硬件资源。
  库文件是更便于调用,功能更强大的公用接口,类似于API.可以认为是若干API的组合。
  应用程序可以调用API来实现功能。也可以调用库文件,间接地调用API来实现功能。
  shell是内核提供给用户的一个界面,用于用户和内核进行交互。
  shell接收用户的操作指令,翻译成内核能够理解的类型,交给内核从而让内核来控制硬件执行。shell把运行结果转换成用户能识别的格式交给用户。
  所以,shell也是一种命令解释器。
  shell脚本是否可以执行,除了权限为可执行(x)外,还和文件的内容有关。
  脚本第一行必须是#!/pathToShell/shellName   比如#!/bin/bash
  #! 叫shebang。出现在文本文件第一行的最前面两个位置。这种情况下,类unix操作系统的载入程序会分析shebang后的内容,并将这些内容作为解释器指令。载入程序将调用该解释器指令,并将该文本文件的名称作为该解释器的参数。(在shell中执行脚本,shell先读出脚本文件的第一行,分析是否有shebang,如果有,就将shebang后面的内容当做命令解释器,并调用,同时将该脚本的文件名当做参数($0)传递给这个解释器。命令解释器一般是个shell。调用命令解释器,一般是启动了一个子shell).
  shell可以调用现成的程序,但是不能直接调用API。
  shell脚本:ascii码格式的,用程序控制符将若干命令组合起来实现某种功能的特殊的文本文档。这种文档可以被shell理解并按照设计的逻辑来运行里面的命令。所以被称作可执行文档、脚本。
  shell脚本类似于windows中的批处理。
  程序代码:由语句和表达式组成
  表达式简单的可以理解成某语言的语法,而由这些语法构成的一条执行语句则是表达式语句。
  面向过程的编程中,语句执行方式
  1.顺序执行(默认)。
  2.选择执行 程序分支,通过条件判断选择不同的分支去执行。
  3.循环执行 将一段代码反复执行有限次,所以应该有退出条件。
  编程语言的分类
  按照执行方式分
  1.动态语言:
  所有语句解释执行,解释一句执行一句。变量在用到的时候才定义,不需提前定义。
  如:perl、bash、python
  2.静态语言:
  源代码必须完全编译,生成可执行的二进制文后才能运行。变量要提前定义好。
  如:c、c++
  按照变量类型的限制
  1.弱类型语言:
  变量无需明确声明数据类型。默认都以字符格式存储。不便于存储和操作。如bash脚本
  2.强类型语言:
  变量必须明确声明数据类型,便于存储和操作。如 c、c++、python等
  动态类型语言是弱类型的。

页: [1]
查看完整版本: linux学习--shell的脚本编程理解