1、运算符:
1、基本语法:$((运算式))或$[运算式]
2、expr + n // 注意运算符中间有空格
再用expr时要加 ` ` 号,* 号加转义字符\ \* ,表示乘
2、判断语句
[ condition ] // 注意condition前后要有空格,非空返回true,可使用$?验证(0位true >1位false)
两个数比较
= 字符串比较
-lt 小于
-le 小于等于
-eq 等于
-gt 大于
-ge 大于等于
-ne 不等于
文件权限比较
-r 有读的权限
-w 有写得权限
-x 有执行得权限
按照文件类型判断
-f 文件存在并且是一个常规文件
-e 文件存在
-d 文件存在并是一个目录
例:
[ 22 -lt 23]
[ -w shtu.txt ]
[ -e /root/sh.log ]
注意: 前后空格
3、流程控制
if 判断
if [ 条件判断式 ];then
.....
elif [ 条件判断式 ];then
......
else
......
fi
或者
if [ 条件判断式 ]
then
.....
fi
注意;if后面的空格和条件判断式前后的空格
case语句:
case $变量名 in
值1)
......... // 如果值等于1,侧执行1
;;
值2)
......... // 如果值等于2,则执行2
;;
esac
for循环:
for 变量 in 值1 值2 .... 或者可以是一个数组
do
....
done
或者:
for (( i=1; i<10; i=$i+1 ))
do
....
done
while循环:
while[ 条件判断式 ]
do
.....
done
4、read读取控制台输入
read(选项)(参数)
选项;
-p : 指定读取值时的提示符
-t : 指定读取值时的等待时间
参数:
变量:指定读取值的变量名
例:read -p "你的名字:" name // 注意空格,在shell脚本用的时候加 ` ` 包着
5、函数
basename 文件路径 // 删除所有前缀包括最后一个 / ,只留下一个文件名, 在shell脚本中使用时要用 ` ` 包着
dirname 文件路径 // 去除文件名,返回一个路径 。在shell脚本中使用时要用 ` ` 包着,
注意:在shell脚本中运行一些命令时,如果不管用,用 ` ` 包着使用。例; `pwd -p`