重庆专业微信网站制作国际新闻稿件
结构化命令structured command:允许脚本根据条件跳过部分命令,改变执行流程。
1、if-then语句
格式1:
if command
then
commands
fi
格式2:
if command; then
commands
fi
运行if之后的command命令,如果它的退出状态码是0(该命令成功执行),那么就执行then里面的命令;如果是其它值,则执行脚本中的下一条命令。fi语句用来表示if-then语句到此结束。
#!/bin/bash
if pwd
thenecho "查看当前路径成功!"
fi
2、if-then-else语句
格式:
if command
then
commands
else
commands
fi
3、嵌套if语句
通过使用嵌套的if语句,可以在shell脚本中检查多种条件
#!/bin/bash
testuser=ln
if grep $testuser /etc/passwd
thenecho "用户$testuser存在。"echo
elseecho "用户$testuser不存在。"if ls -d /home/$testuser/thenecho "但是该用户有个路径。"fi
fi
echo "脚本运行完毕!"
4、elif语句
格式:
if command1
then
commands
elif command2
then
commands
fi
#!/bin/bash
testuser=ln
if grep $testuser /etc/passwd
thenecho "用户$testuser存在。"echo
elif ls -d /home/$testuser/
thenecho "用户$testuser不存在。"echo "但是该用户有个路径。"
fi
echo "脚本运行完毕!"
5、test命令
test命令可以在if-then语句中测试不同的条件,如果test命令中列出的条件成立,那么test命令就会退出并返回退出状态码0;若条件不成立,test命令就会退出并返回非0的退出状态码。
格式:test condition
if test condition
then
commands
fi
如果不写test命令的condition条件,那它会以非0的退出状态码退出并执行else部分的代码块。
#!/bin/bash
if test
thenecho "111"
elseecho "222"
fi
加上test命令的condition条件
#!/bin/bash
var1="Full"if test $var1
thenecho "111"
elseecho "222"
fi
如果test命令的condition返回非0退出状态码
#!/bin/bash
var1=""if test $var1
thenecho "111"
elseecho "222"
fi
6、使用方括号代替test命令
可以通过使用方括号定义测试条件。注意:第一个方括号之后和第二个方括号之前必须留有空格,否则会报错。
格式:
if [ condition ]
then
commands
fi
test命令中的condition和测试条件里的condition可以判断如下3类条件:
- 数值比较
- 字符串比较
- 文件比较