shell脚本编程的步骤
1、建立shell文件,使用vi编辑:
建议以“.sh”为文件后缀名
2、Shell脚本的格式是固定的,内容如下:
#!/bin/sh //指定shell,即脚本执行环境
#comments //注释
Your commands go her
3、设置 shell 脚本执行权限:
chmod u+x file.sh
4、执行shell脚本
./file.sh
在不改变文件权限时也可以
bash file.sh
注释
#以#号开头的为单行注释, shell 编程无直接的多行注释
#单行注释1
#单行注释2
变量
shell编程中,变量不需要提前声明,不需要指定 数据类型。默认都是字符
变量定义
var_name=val_value
变量的引用
val=$ {变量名}
val=$ 变量名
输出变量
echo $变量名
删除变量
unset 变量名
echo打印变量值:
•${变量原形}、$变量原形、$(命令)、$((1+1))、$[算术表达式]
var=Gary
echo $var
echo ${var}AA
echo '${var}AA' #单引号对中,输出时,不解释字符串中任何内容。
echo “${var}AA” #双引号对中,输出时,将解释字符串中的变量
输出命令结果,$(命令):
执行并返回命令执行结果。
echo $(uname $param)
echo $(date)A
转义
echo -e "sgx\ting" // \t
echo -e "sgx\ning // \n
输入命令
read -p " 字符串" name 输入的值将会赋值该name
算术运算符:
+、-、*、/、%、+=、-=、*=、/=、%=
算术表达式:
variable_name=$((算术表达式))
字符串比较运算符:
= 等于则为真。
!= 不等于则为真。
-z string 如 果 s t r i n g 长 度 为 零 , 则 为 真 。 [ - z " $ m y v a r " ]
-n string 如 果 s t r i n g 长 度 非 零 , 则 为 真 。 [ - n " $ m y v a r " ]
string1 = string2 如 果 s t r i n g 1 与 s t r i n g 2 相 同 , 则 为 真 。 [ " $ m y v a r " = " o n e two three" ]
string1 != string2 如 果 s t r i n g 1 与 s t r i n g 2 不 同 , 则 为 真 。 [ " $ m y v a r " ! = "one two three" ]
整数关系运算符:
num1 -eq num2 等于则为真。
num1 -ne num2 不等于则为真。
num1 -lt num2 小于则为真。
num1 -le num2 小于等于则为真 。
num1 -gt num2 大于则为真。
num1 -ge num2 大于等于则为真 。
文件比较运算符:
-e filename 如 果 fil e n a m e 存 在 , 则 为 真 。
-d filename 如 果 fil e n a m e 为 目 录 , 则 为 真 。
-f filename 如 果 fil e n a m e 为 常 规 文 件 , 则 为 真 。
-L filename 如 果 fil e n a m e 为 符 号 ( 软 ) 链 接 , 则 为 真 。
-r filename 如 果 fil e n a m e 可 读 , 则 为 真 。
-w filename 如 果 fil e n a m e 可 写 , 则 为 真
-x filename 如 果 fil e n a m e 可 执 行 , 则 为 真 。
filename1 -nt filename2 如 果 fil e n a m e 1 比 fil e n a m e 2 新 , 则 为 真 。
filename1 -ot filename2 如 果 fil e n a m e 1 比 fil e n a m e 2 旧 , 则 为 真 。