Linux Bash IF–ELIF–ELSE条件语句教程及示例

Bash提供编程条件语句。条件为应用程序流提供决策点。例如,如果文件存在,则执行此操作,如果不执行其他操作,如逻辑操作。

null

if-else语法

猛击 if-else 语句可用于3种不同的情况。这里列出了它们的语法。

单箱检查

我们可以检查一个单一的案件或情况与 if .. then .. fi .

if CASE then   COMMANDSfi
  • 我们将用不同的逻辑运算来检查这个例子,比如equal,greater then,same等等。如果这个例子是真的,我们将执行命令,如果不是,我们将不执行任何命令。

两箱检查

在两种情况下,我们将检查两种情况。如果第一个给定的情况是真的,我们将执行COMMANDS1,如果不是真的,我们将执行else COMMANDS2。

if CASE then   COMMANDS1else   COMMANDS2fi

多病例检查

在多个案例检查中,我们将检查案例。如果不正确,将检查案例2如果不正确,将检查案例3。我们可以用 elif . 如果情况属实,则将执行其命令。如果所有的 if elif 比最后一部分更假 else 命令n  将被执行。

if CASE then   COMMANDS1 elif CASE2   COMMANDS2elif CASE3    COMMANDS3...else    COMMANDSNfi

正如我们看到的,if语句有不同的语法类型。实际上,它们在逻辑上非常相似。我们将在下面详细介绍它们。

单一条件If

如果这种类型的语法非常简单,我们将只检查单个条件,然后执行所需的代码。

#!/bin/bash  if true;  then     echo "TRUE"; fi;

这是一个非常简单的例子,首先我们看一行,如果它是真的,这意味着条件在下面得到满足,那么分支将被执行。然后分支打印 “正确” fi结束于分支。

与Else的两个条件

我们可以改进先前的if条件,如果第一个条件不满足,则添加一个条件。想想这是真是假。对于两种情况,有两个分支。

#!/bin/bash myvalue=false if $myvalue;  then     echo "TRUE"; else     echo "FALSE"; fi;

多条件If

一般来说,会有不止一种情况。我们可以使用下面的多个elif语句指定多个条件。

#!/bin/bash  age=12;  if [ $age -ge 18 ];  then     echo "Age is equal or greater than 18"; elif [ $age -ge 7 ]; then     echo "Age is between 7 and 17" else     echo "Age is below 7"; fi;

在这个例子中,我们有三种情况,其中第一个等于或大于18的if行。第二个是elif行,看起来等于或大于7。第三个是else语句,逻辑上低于7。

相关文章: Linux Bash Case语句及其示例

-ge 用作大于或等于运算。

方括号 [ , ] 用于将其中比较操作的结果输出到条件。

有关等于、大于等逻辑运算的更多信息,请参阅以下教程。

Linux Bash操作符,比如赋值、加法、计算

比较和检查运算符

在使用 if-else 我们通常需要使用比较和检查运算符来检查案例。它们可以用来检查一个文件是否存在或给定的数字是否大于另一个。在这里,我们将列出一些最有用的比较和检查运算符,可用于 if-else-elif 案例。

是的

true 是指定正数大小写的逻辑值。 true 将匹配案例 if-else-elif .

true

false 是指定负大小写的逻辑值。 false 不匹配的情况下 if-else-elif .

否定表达

使用时 if-elif-else 我们将使用逻辑正确和错误。我们可以通过在逻辑值前面加上 ! . 如果给定的值为真并以 ! 这是假的。如果给定值为false并以 ! 这是真的。

  • !true 等于假
  • !false 等于真值

字符串大于零

我们可以检查字符串的大小或字符数是否超过0个字符并且它不是空的。

-n STRING

字符串为零

我们可以检查字符串的大小或字符数  0个字符,为空。

-z STRING

STRING1等于STRING2

最常用的比较和检查运算符之一是检查两个给定字符串是否相等。我们可以用等号 = 就像下面一样。

STRING1 = STRING2

STRING1不等于STRING2

我们可以检查给定的STRING1是否不等于另一个具有 != .

STRING1 != STRING2

整数1等于整数2

另一个有用且流行的比较和检查操作是检查两个给定整数在数值上是否相等。我们可以用 -eq 操作员如下所示。

INTEGER1 -eq INTEGER2

整数1大于  整数2

另一个有用且流行的比较和检查操作是检查INTEGER1在数值上是否大于INTEGER2。我们可以用 -gt 操作员如下所示。

INTEGER1 -gt INTEGER2

整数1大于或等于  整数2

另一个有用且流行的比较和检查操作是检查INTEGER1在数值上是否大于或等于INTEGER2。我们可以用 -ge 操作员如下所示。

INTEGER1 -ge INTEGER2

整数1小于  整数2

另一个有用且流行的比较和检查操作是检查INTEGER1是否小于  整数2。我们可以用 -lt 操作员如下所示。

INTEGER1 -lt INTEGER2

整数1小于或等于  整数2

另一个有用且流行的比较和检查操作是检查INTEGER1在数值上是否小于或等于INTEGER2。我们可以用 -le 操作员如下所示。

INTEGER1 -le INTEGER2

文件存在并且是一个目录

我们还可以检查一些文件和目录属性。我们可以检查给定的文件是否是一个目录,是否与 -d 接线员。

-d FILE

文件已存在

我们只能检查给定的文件或目录是否存在 -e 操作员如下所示。

-e FILE

文件存在且大小大于零

我们可以检查给定的文件是否存在,其中是否有一些内容,这意味着它不是空的,并且大小大于零。

-s FILE

在单行中使用If-Else

在某些情况下,我们可能需要一些清晰度和可读性。所以我们应该使用 If Else 在一行中,这是有效的,只要我们遵守语法。如有其他类似情况,我们可以表达。我们应该意识到 if , then , else fi 是很重要的。

#!/bin/bash myvalue=falseif $myvalue; then echo "TRUE"; else echo "FALSE"; fi;

如果不是,则嵌套

我们可能会遇到嵌套逻辑存在的复杂情况。我们可以用 If Else 以嵌套的方式来解决或处理这个问题。在这个例子中,我们首先检查 myvalue 变量是否为 True False . 如果这是真的,我们就进入嵌套 if-elif-else . 如果不是真的,我们就执行 else 哪个指纹 FAILURE . 如果这是真的,那么我们检查一下 myothervalue 不管是不是 1 。如果是1,则打印 OK 否则我们什么也不印。

#!/bin/bash myvalue=false myothervalue=1if $myvalue;   then   if $myothervalue -eq 1; then      echo "OK"      fi;else       echo "FAILURE"; fi;

检查文件是否存在

我认为最想要的例子之一是检查文件是否存在,并根据结果执行代码。我们将使用 -a 运算符,用于检查文件夹是否存在,如果给定文件存在,则返回true。

#!/bin/bash  if [ -a "/home" ]then   echo "/home directory exists."fi
Check If A File Exist
检查文件是否存在

检查是否存在软链接

我们可以检查提供的文件是否存在以及符号链接。我们将使用 -h 用于检查给定文件的选项是否为软链接。

#!/bin/bash  if [ -h "/bin/ping4" ];  then     echo "/bin/ping4 exist and symbolic link"; fi;
Check If A Softlink Exist
检查是否存在软链接

比较数字,检查A是否低于B

另一个有用的if-else检查是比较数字。我们可以检查两个数字,看看A是小于还是等于B。

#!/bin/bash a=12  b=15  if [ $a -le $b ]  then     echo "$a is lower or equal to $b" fi
Compare Numbers and Check If A Is Lower Than B
比较数字,检查A是否低于B

我们比较两个变量 $a $b 具有 -le 意味着更低或相等。如果compare返回true,则将消息打印到控制台。

相关文章: Linux Bash Case语句及其示例

字符串比较

字符串变量也可以比较。例如,我们可能需要检查当前用户并比较它是否是root用户。

#!/bin/bash  if [ "$(whoami)" != 'root' ]; then     echo "You have no permission to run $0 as non-root user."     exit 1; fi

我们使用 whoami 命令并比较它是否与 “根目录” 具有 != . 如果用户名与root不同,我们将向控制台打印一条消息。

检查是否定义了变量

检查脚本文件中是否设置了变量非常有用。

#!/bin/bash  if [ -z ${HOME+x} ];  then      echo "HOME is unset";  else      echo "HOME is set to '$HOME'";  fi

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享