Skip to main content

如何编写Bash IF语句(条件)

11 2 4 Shell编程 字符截取命令 sed命令 (六月 2025)

11 2 4 Shell编程 字符截取命令 sed命令 (六月 2025)
Anonim

使用if语句(一种条件语句),您可以根据指定的条件执行不同的操作。它有效地使系统能够做出决策。

最简单形式的if语句的一个例子是:

如果$ count == 5则计数= 5然后回显“$ count”fi

在此示例中,变量“count”用于指定用作if语句的一部分的条件。在执行if语句之前,变量“count”被赋值为“5”。然后,if语句检查“count”的值是否为“5”。如果是这种情况,则执行关键字“then”和“fi”之间的语句,否则执行if语句后面的任何语句。关键字“fi”是“if”拼写向后。 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”的值,否则打印字符串“count is not 5”。

如果要区分多个条件,可以使用关键字“elif”,它来自“else if”,如下例所示:

if $ count == 5 then echo“count is five”elif $ count == 6 then echo“count is six”else else echo“none of the above”fi

如果“count”为“5”,则系统打印出“count is five”。如果“count”不是“5”而是“6”,则系统打印“count is six”。如果它既不是“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然后回声“计数是八”elif $ count == 9然后回声“计数是九”否则回声“没有以上”fi

使用多个条件编写此类语句的更紧凑方法是case方法。它的功能类似于带有多个“elif”子句的if语句,但更简洁。例如,上面的代码可以用“case”语句重写,如下所示:

案例“$ count”5)echo“count is five”;; 6)回声“数是六”;; 7)回声“数是七”;; 8)回声“数是八”;; 9)回声“数是九”;; *)回应“以上都不是”esac

if语句通常在for循环或while循环中使用,如下例所示:

count = 1 done = 0而$ count -le 9做睡眠1((计数++))如果$ count == 5则继续fi echo“$ count”完成echo完成

您也可以使用嵌套的if语句。最简单的嵌套if语句的形式如果:if … then … else … if … then … fi … fi。但是,if语句可以嵌套任意复杂性。

另请参见如何将参数传递给bash脚本,该脚本显示如何使用条件来处理从命令行传递的参数。

bash shell提供其他编程结构,例如for循环,while循环和算术表达式。