判断
if [ expression ]; then
# do something
else
# do something
fi
分支
case ${var} in
condition1)
# do something
;;
condition2)
# do something
;;
*)
# default do something
;;
esac
循环
# 循环列表1
for var in [list]
do
# use ${var} do something
done
# 循环列表2
for var in {1..100}
do
# use ${var} do something
done
# 循环读文件
cat $file |while read line
do
# do something
done
while [ condition ]
do
# do something
done
# 循环控制
break; # 跳出
continue; # 继续
判断标识
-a # 逻辑与
-o # 逻辑或Or
-eq # 等于
-ne # 不等于
-lt # 小于
-gt # 大于
-le # 小于等于
-ge # 大于等于
if [ x"${value}" == x ];then ... # 字符串判空
-e # 文件是否存在
-d # 文件是否为目录
-s # 文件大小是否为零
-f # 文件是否为普通文件
-r # 文件是否对当前用户可读
-w # 文件是否对当前用户可写
-x # 文件是否对当前用户可执行
!-x # 文件是否对当前用户不可执行
file1 nt file2 # 文件1比文件2新
file1 ot file2 # 文件1比文件2旧
函数传参
$0 # 函数或命令的名字
$n # 命令的第n个参数
$* # 所有参数,代表["$1$2$3$4……"]
$@ # 所有参数,代表["$1" "$2" "$3" ……]
$# # 参数个数
$$ # 命令的PID
$! # 上一个指令的PID(后台运行的最后一个进程的进程ID号)
$? # 上一个指令的返回值 (0表示没有错误)
$- 显示shell使用的当前选项,与set命令功能相同
引用其他脚本
source filename.sh
. filename.sh
网友评论