shell基本语法
变量
表达式
判断语句
if表达式


文件名以一般以.sh结尾
#!/bin/bash #显示后面的命令以哪种shell执行
#:表示注释
执行
1.chmod +x file.sh ------- ./file.sh
2./usr/local/scripts/file.sh(也需要有执行权限)
3.bash ./file.sh(不需要执行权限)
shell变量
1.临时变量:shell程序内部定义的,其使用范围仅限于定义它的程序,对其它程序不可见
2.永久变量:是环境变量,其值不随shell脚本的执行结束而消失
用户自定义变量:由字母或下划线打头。由字母、数字或下划线组成,并且区分大小写。变量名长度没有限制
引用变量值时,要在变量名前加上前缀$
变量赋值用"=",两边不能有空格
将命令的值赋给一个变量。如:A=date B=$(date)
可以利用变量和其它字符组成一个新的字符串.
set:列出所有的变量
给变量赋值多个单词(用单引号或双引号引起来)。A="one two"
单引号之间的内容原封不动地指定给变量
双引号取消了空格的作用,特殊符号的含义保留。
删除变量unset 变量名
位置变量和特殊变量
$n:这个脚本的第n个参数
$0:脚本名
$*:这个程序的所有的参数
$#:这个程序的参数个数
$$:这个程序的PID
$!:执行上一个后台程序的PID
$?:执行上一条命令的返回值
read命令
作用:从键盘读入数据,赋给变量
expr命令(用于计算)


test str1==str2
test str1 != str2
test str1 #测试字符串是否不空
test -n str1 #测试字符串长度不为零,则返回结果为真
test -z str1 #测试字符串长度为零,则返回结果为真


test int1 -eq int2
test int1 -ge int2
test int1 -gt int2
test int1 -le int2
test int1 -lt int2
test int1 -ne int2


说明:也可以省略test写成这样:[ int1 -lt int2 ]


文件测试
test -d file #测试是否为目录
test -f file
test -x file
test -r file
test -w file
test -e file
test -s file #测试大小是否为空


可简单写成这样:[ -x file ]
=========流程控制语句=========================
if 条件; then
command
fi


if 条件1; then
command
else
command
fi


多个条件的联合
-a或&&:仅当两个条件都成立时,结果为真
-o或||:逻辑或。两个条件有一个成立,结果为真


if 条件1; then
command
elif 条件2; then
command
elif 条件3; then
command
else
command
fi