shell脚本学习(一)
1. what
- shell脚本就是一个包含一系列命令的文件。
- shell 读取这个文件,然后执行文件中的所有命令,就如同这些命令直接被输入到了命令行一样。
2. format
- 注释 --> #
- shebang -->#!–>告诉操作系统将执行此脚本所有的解释器的名字
3. 可执行权限
- 脚本常用的权限为 777 -->保证每个人都可以执行此脚本
- 700 -->只有root可以执行此脚本
4.变量定义 + 初始化 + 赋值 + 引用
类型 | 描述 |
---|---|
变量定义 | 不同于C语言,不需要指定变量类型,也没有类型这个概念 |
变量初始化 | 变量定义可以使用(=)进行初始化赋值。–>等号两边不能有空格 |
变量赋值 | 变量可以定义之后,再进行初始化赋值。–> shell中并不刻意区分变量的定义和赋值,每个变量就是一个符号,此符号的值就是最后一个赋给它的值。 |
变量引用 | $符号后面跟一个字符串,这个字符串会被当做变量去解析。 如果此字符串没有被定义,执行时不会报错,会默认把此字符串解析为空。shell中没有被定义的变量其实就是一个定义并且被赋值为空的变量。 注意:变量引用的时候可以$var,也可以${var}。这两种的区别是在某些情况下只能用${var} |
-
举例
string=echo #赋值string变量值为echo echo $stringwzl #输出为空,由于$stringwzl没有定义,被解释为空 echo ${string}wzl #输出echowzl,将{}内部当成$的内容进行解析
5. 无引号 + 单引号 +双引号 区别
类型 | 描述 |
---|---|
无引号 | 不能输出“ + 其他转义字符-- >转义字符需要在" " + ‘ ’之间出现 --> ‘\0’ |
单引号 | 单引号之间完全输出 -->单引号中,完全字面替换,忽略所有的特殊字符 |
双引号 | 可以输出部分特殊符号 --> “$” + “\`” + “\”"+ “\\” -->其他字符前面加\无特殊意义 |
-
反引号
linux 命令
,可以得到此命令的返回值echo "today is `date`"
6.选择分支结构
符号 | 含义 |
---|---|
-eq | equal 等于 |
-ne | no equal 不等于 |
-gt | great than 大于 |
-lt | low than 小于 |
-ge | great and equal 大于等于 |
-le | low and equal 小于等于 |