一、使用if-then
1、结构化命令(structuredcommand):程序要求对shell脚本中的命令施加一些逻辑流程控制或根据条件使脚本跳过某些命令
2、bashshell的if语句会运行if后面的那个命令。如果该命令的退出状态码是0(该命令成功运行),位于then部分的命令就会被执行。如果该命令的退出状态码是其他值,then部分的命令就不会被执行,bashshell会继续执行脚本中的下一个命令
3、fi语句用来表示if-then语句到此结束
4、可以把分号放在待求值的命令尾部,将then语句放在同一行上。
if command;then
commands
fi
5、if-then语句中,不管命令是否成功执行,你都只有一种选择。命令返回一个非零退出状态码,if-then-else语句能够执行另一组命令。嵌套的if-then语句位于主if-then-else语句的else代码块中
6、嵌套 if语句•可以使用else部分的另一种形式:elif。这样就不用再书写多个if-then语句了。elif使用另一个if-then语句延续else部分
7、用elif语句为某用户创建账户;检查该用户名是否存在,如果存在返回“该用户已存在”,并输出该用户的信息;如果不存在,检查/home下是否有该用户的文件夹;如果有该用户名称的文件夹,输出文件夹下内容;如果没有该用户文件夹,为该用户名创建新用户;每一步都需要返回提示信息如“该用户已存在”
二、
二、test命令、复合条件测试、方括号、case
1、if-then语句不能测试命令退出状态码之外的条件。
2、test命令提供了在if-then语句中测试不同条件的途径。
3、如果test命令中列出的条件成立,test命令就会退出并返回退出状态码0。这样if-then语句就与其他编程语言中的if-then语句以类似的方式工作了。
4、如果条件不成立,test命令就会退出并返回非零的退出状态码,这使得if-then语句不会再被执行
5、 如果不写 test的 condition部分,则它会以非 0的状态码退出并执行 else代码块语句
6、test命令可以判断三类条件:数值比较;字符串比较;文件比较
7、布尔逻辑(booleanlogic)是一种能够将可能的返回值简化为TRUE或FALSE的方法;if-then语句允许你使用布尔逻辑来组合测试。
8、双括号命令((expression))允许你在比较过程中使用高级数学表达式。test命令只能在比较中使用简单的算术操作。双括号命令提供了更多的数学符号,并且不需要将双括号中表达式里的大于号转义。
9、双方括号命令[[expression]]使用了test命令中采用的标准字符串比较,并且提供模式匹配(patternmatching)
10、case命令采用列表格式来检查单个变量的多个值。不需要再写出所有的elif语句来不停地检查同一个变量的值了
11、假设你周一到周五有不同的课;从系统时间中获取今天是周几;返回今天要上的课