如何在 Bash 中使用 if...else 语句

  1. Bash 中的 if 语句
  2. bash 中的 if...else 语句
  3. if...elif...else 语句在 Bash 中的应用
  4. 嵌套在 Bash 中的 if 语句

条件语句在几乎所有的编程语言中都很普遍,用于决策。它们只允许在满足特定条件的情况下执行一条或多条语句。if...else 在大多数编程语言中被用作条件语句。在 Bash 中,我们还有 ifif...elif...elferif...else 和嵌套的 if 语句作为条件语句。

Bash 中的 if 语句

if 语句的语法

if Test-Expression
then
  Statements
fi

在上面的例子中,如果 Test-ExpressionTrue,则执行 statementsfi 关键字用于结束 if 语句。

如果 Test-Expression 不是 TrueStatements 都不会被执行。

为了使我们的代码看起来更易读,更有条理,我们可以使用 4 空格或 2 空格缩进。

示例:Bash 中的 if 语句

echo -n "Enter numnber : "
read n
 
rem=$(( $n % 2 ))
 
if [ $rem -eq 0 ]
then
  echo "$n is even number"
fi

输出:

Enter numnber : 4
4 is even number

它接受用户提供的数字,只有当数字是偶数时才会输出。

如果数字是偶数,那么当数字除以二时,余数为零,因此测试表达式为 True,这样 echo 语句就会被执行。

bash 中的 if...else 语句

if...else 语句的语法

if Test-Expression
then
  Statements-1

else
  Statements-2
fi

在这个例子中,如果 Test-ExpressionTrue,则执行 Statements-1;否则,执行 Statements-2。在结束 if...else 语句时,使用 fi 关键字。

例子:Bash 中的 if...else 语句

echo -n "Enter numnber : "
read n
 
rem=$(( $n % 2 ))
 
if [ $rem -eq 0 ]
then
  echo "$n is even number"
else
  echo "$n is odd number"
fi

输出:

Enter numnber : 5
4 is odd number

它接受用户提供的一个数字,并根据输入数字是否正好被 2 整除而给出输出。

如果数字是偶数,当数字除以 2 时,余数为零;因此,测试表达式为 True,语句 echo "$n is even number" 得到执行。

如果数字是奇数,余数不为零;因此,测试表达式为 False,语句 echo "$n is odd number"被执行。

if...elif...else 语句在 Bash 中的应用

if...elif...else 语句的语法

if Test-Expression-1
then
  Statements-1
elif Test-Expression-2
then
  Statements-2

else
  Statements-3
fi

如果 Test-Expression-1True,则执行 Statements-1;否则,如果 Test-Expression-2True,则执行 Statements-2

如果两个测试表达式都不为 True,则执行 Statements-3

我们可以有任意多的 elif 语句,else 语句是可选的。

例子:Bash 中的 if...elif...else 语句

echo -n "Enter the value of a: "
read a

echo -n "Enter the value of b: "
read b

if [ $a -lt $b ]
then
   echo "a is less than b"
   
elif [ $a -gt $b ]
then
   echo "a is greater than b"

else
   echo "a is equal to b"
fi

输出:

Enter the value of a: 4
Enter the value of b: 4
a is equal to b

它接受两个数字作为用户的输入,并根据哪个测试表达式为真打印结果。

如果 a<b,程序打印 a is less than b

如果 a>b,程序打印 a is greater then b

如果这两个条件语句都不为真,程序就会打印出 a is equal to b

嵌套在 Bash 中的 if 语句

当一个 if 语句放在另一个 if 语句中时,称为嵌套 if 语句。

echo -n "Enter numnber : "
read a
 
rem=$(( $a % 2 ))
 
if [ $rem -eq 0 ]
then
  if [ $a -gt 10 ]
  then
    echo "$a is even number and greater than 10."
	
  else
    echo "$a is even number and less than 10."
  fi
else
  echo "$a is odd number"
fi

输出:

Enter numnber : 46
46 is even number and greater than 10.

它演示了嵌套的 if 语句的用法。如果数字正好被 2 除以 2 且大于 10,则执行 echo "$a is even number and greater than 10."语句。

comments powered by Disqus