1. if-then
在shell中,if后面会跟着一个命令,如果该命令的退出状态码是0,则会执行then后面的语句,否则then后面的语句不会被执行。fi语句来表示if-then的结束,如下:
执行结果如下:
打印的结果中,第一行的是who命令的输出,由于who返回的退出状态码是0,所以then后面的命令是执行了的,所以第二行打印了1。第三行是我打印的一个分割线(不用管)。第四行显示报错,是由于fail这个命令是错误的,所以返回了错误信息,同时在then后面的命令也不会打印。
2. if-then-else
比if-then多了一个else,也就是说,在if后面的命令返回的退出状态码是0时,then后面的命令会执行,else后面的命令不会执行;在if后面的命令返回的退出状态码不是0时,then后面的命令不会执行,else后面的命令会执行,如下:
执行结果如下:
在第一个if语句中,then后面的命令执行了,在第二个if语句中,else后面的命令执行了。
以上两个语句是在判断条件单一的情况下所使用的,如果判断条件过多,那么可以使用if语句嵌套以及elif这些语句来实现,具体以示例展示:
上面使用的是if嵌套,下面显示的是elif,执行结果如下: