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文件是可读的