shell 脚本 if
参考 菜鸟教程 Shell 流程控制 、菜鸟教程 Shell test 命令、Shell if 条件判断、linux 下shell中if的“-e,-d,-f”是什么意思、
shell if 语法
if [ condition1 ]
then
command1
elif condition2
then
command2
else
commandN
fi
语法解释
- [ ]表示条件测试。注意这里的空格很重要。要注意在'['后面和']'前面都必须要有空格
- if then els fi 等是分开的语句。如果要在同一行里面输入,则需要用分号将他们隔开
-
if [ "$cmd_line" = "cmd" ] ;then echo "tongyihang ==== "; else echo "tongyihang not ===="; fi
整数变量表达式
- -eq 等于
- -ne 不等于
- -gt 大于
- -ge 大于等于
- -lt 小于
- -le 小于等于
字符串表达式
- = 判断字符串相等
- == 判断字符串相等 等同于=
-
!= 不等于
cmd_line="cmd"
#判断字符串相等
if [ "$cmd_line" = "cmd" ]
then
echo " == "
else
echo " not =="
fi
文件/文件夹(目录)表达式
- -e filename 如果 filename存在,则为真。判断文件是否存在
- -d filename 如果 filename为目录,则为真 。
- -f filename 如果 filename为常规文件,则为真。判断文件类型
#判断文件是否存在
if [ -e ${filename} ]
then
echo "file is exist"
else
echo "file is not exist"
fi
逻辑与 && 和 逻辑或 ||
逻辑与 command1 && command2
- command1和command2都返回真,整个表达式才返回真。
- 如果command1返回假,command2不再执行,整个表达式直接返回 假
- 如果command1返回真,才会执行command2
逻辑或 command1 || command2
- 只要有一个表达式返回真,整个表达式就返回真
- 如果command1返回真,command2不再执行,整个表达式直接返回 真
- 如果command1返回假,才会执行command2