if语句

时间:2020-02-23 14:39:07  来源:igfitidea点击:

其中一个最常用的编程结构是条件执行,或者if语句。
此符号用于基于测试条件执行某些命令。
例如,如果条件为true,则可能希望执行某些命令,如果条件为false,则其他命令。

IF语句的基本结构如下所示:

if [ conditional-expression ]
then
commands
else
other-commands
fi

首先,评估括号内的条件。
如果条件为true,则执行以下关键字的命令。
否则,执行默认关键字的命令。
fi(如果是向后)关键字标记if块的末尾。

一个简单的例子,可以了解概念。
让我们说我们想要了解用户的年龄。
我们可以要求用户输入他或者她的年龄,然后执行不同的命令,具体取决于输入:

#!/bin/bash 
echo “How old are you?” 
read age 
if [ “$age” -ge 21 ] ; then 
echo “You are old enough. Welcome!” 
else 
echo “Sorry, you are not allowed to be here, you are too young!” 
fi

首先,我们要求用户进入他/她的年龄。
然后将用户输入的数字分配给变量年龄。
如果用户年龄21岁或者以上(由-ge 21指定),则我们已经足够大了。
欢迎!消息显示。
如果不是这种情况,对不起,你不被允许其中你太年轻了!消息显示:

注意[ 和 ]之间的空格。

以下是所有比较运算符的列表:

  • -eq等于
  • -ne不等于
  • -lt小于
  • -le 小于或者等于
  • -gt大于
  • -ge大于或者等于

我们还可以使用elif语句来测试任意数量的条件。
例如:

#!/bin/bash 
echo “How old are you?” 
read age 
if [ “$age” -le 21 ] ; then 
echo “You are too young. Leave now!” 
elif [ “$age” -ge 60 ] ; then 
echo “You are too old! Go away!” 
else 
echo “You are just the right age. Welcome!” 
fi

我们可以看到上面的脚本显示我们太年轻。
现在离开!消息如果用户是21岁或者以下,那么我们太老了!离开!如果用户年龄为60岁或者以上,而且你就是正确的时代。
欢迎!如果上面的任何条件都是真的:

这是另一个例子。
假设我们想测试文件是否存在,然后基于该条件执行不同的命令。
我们可以使用括号内的-e选项来测试文件是否存在:

#! /bin/bash 
file=test_file 
if [ -e $file ] 
then 
 echo “File $file exists.” 
else 
 echo “File $file doesn't exist.” 
fi

以下是Bash shell的文件测试运算符列表:

  • -e文件存在
  • -f文件,而不是目录
  • -d目录存在
  • -x文件是可执行
  • -w文件是可写的
  • -r文件是可读的