命令、语法和示例
使用 if 语句,这是一种条件语句,我们可以根据指定的条件执行不同的操作。
它有效地赋予系统做出决策的能力。
下面是一个最简单的 if 语句示例:
count=5 if [ $count == 5 ] then echo "$count" fi
在此示例中,变量 count 指定用作 if 语句一部分的条件。
在执行 if 语句之前,变量 count 被赋值为 5 。
if 语句然后检查 count 的值是否为 5 。
如果是这种情况,则执行关键字 then 和 fi 之间的语句。
否则,执行 if 语句之后的任何语句。
关键字 fi 如果向后拼写。
bash 脚本语言使用此约定来标记复杂表达式的结尾,例如 if 语句或者 case 语句。
echo 语句将其参数(在本例中为变量 count 的值)打印到终端窗口。
if 语句的关键字之间的代码缩进提高了可读性,但不是必需的。
如果我们遇到的情况是,只有在条件不为真时才应执行一段代码,请在 if 语句中使用关键字 else,如下例所示:
count=5 if [ $count == 5 ] then echo "$count" else echo "count is not 5" fi
如果条件 $count == 5 为真,系统将打印变量 count 的值。
否则,它会打印字符串计数不是 5 。
如果要区分多个条件,请使用从 else if 派生的关键字 elif ,如下例所示:
if [ $count == 5 ] then echo "count is five" elif [ $count == 6 ] then echo "count is six" else echo "none of the above" fi
如果 count 是 5,系统打印 count is 5 。
如果 count 不是 5 而是 6 ,则系统打印 count is 6 。
如果它既不是 5 也不是 6,则系统不打印上述任何内容。
我们可以有任意数量的 elif 子句。
多个 elif 条件的示例是:
if [ $count == 5 ] then echo "count is five" elif [ $count == 6 ] then echo "count is six" elif [ $count == 7 ] then echo "count is seven" elif [ $count == 8 ] then echo "count is eight" elif [ $count == 9 ] then echo "count is nine" else echo "none of the above" fi
编写具有多个条件的此类语句的一种更紧凑的方法是 case 方法。
它的功能类似于带有多个 elif 子句的 if 语句,但更简洁。
例如,上面这段代码可以用case语句重写如下:
case "$count" in 5) echo "count is five" ;; 6) echo "count is six" ;; 7) echo "count is seven" ;; 8) echo "count is eight" ;; 9) echo "count is nine" ;; *) echo "none of the above" esac
if 语句经常在 for 循环或者 while 循环中使用,如下例所示:
count=1 done=0 while [ $count -le 9 ] do sleep 1 (( count++ )) if [ $count == 5 ] then continue fi echo "$count" done echo Finished
我们还可以嵌套 if 语句。
最简单的嵌套 if 语句的形式为:if...then...else...if...then...fi...fi。
但是,if 语句可以任意复杂地嵌套。