shell if 多条件判断

作者&投稿:沈肃 (若有异议请与网页底部的电邮联系)
shell脚本中的if中多条件语句如何写。~

可以使用 if-elif-else 语法来写多条件语句。
1、首先要理解if-else的基本用法,if条件+then操作+else操作+fi闭合,书写方法如下:

2、if -elif-else 语法的具体格式--if单条件多分支,书写方法如下:

3、实例 - if单条件多分支,这个实例的输出结果是:a 小于 b。

4、实例 - if多条件多分支,这个实例输出结果是:a 等于 b,或 a小于10。

扩展资料
1、shell语法注意事项
shell的if语法和C语言等高级语言非常相似,唯一需要注意的地方就是shell的if语句对空格方面的要求比较严格,如果在需要空格的地方没有打上空格,就会报错。
如if [ 1 == 1 ];then echo "abc";fi中如果在少写了if后面的空格就报错:

2、 shell语法中[[ ]]和[ ]的主要区别
(1) [ ] 实际上是bash 中 test 命令的简写。即所有的 [ expr ] 等于 test expr。对 test 命令来说, 用 -eq 要进行数字比较,而你此时传入字符串,就报错了。
(2) [[ ]] 是内置在shell中的一个命令,它比test强大的多。支持字符串的模式匹配(使用=~操作符时甚至支持shell的正则表达式)。逻辑组合可以不使用test的-a,-o而使用&& ||。

if [ "$file" = "$i" -a -d $file -a -d $i ]

其实

if [ "$file" = "$i" -a -d $file ]
因为既然 file 等于 i, 那么 file 是目录,则 i 也一定是目录,所以判断了 file 就不用再判断 i 了

#其中mkdir外面的符号是esc下来那个按键上的符号,表示执行命令
#!/bin/bash
if [ `mkdir -p ~/1/1` -a `mkdir ~/2` ];then
        echo "成立{$?}"
else
        echo "不成立{$?}"
fi


#!/bin/bash
if
mkdir ~/1/1 && mkdir ~/2
then
echo "成立 $?"
else
echo "不成立 $?"
fi

if [ 条件1 ] || [ 条件2 ]
then
    echo $?
else
    echo $?
fi



资源县18443609420: shell中if怎么判断多个条件 -
矣莘硫酸: if [ expression 1 ] then Statement(s) to be executed if expression 1 is true elif [ expression 2 ] then Statement(s) to be executed if expression 2 is true elif [ expression 3 ] then Statement(s) to be executed if expression 3 is true else Statement(s) to be executed if no expression is true fi

资源县18443609420: shell if 多条件判断 -
矣莘硫酸: #其中mkdir外面的符号是esc下来那个按键上的符号,表示执行命令 #!/bin/bash if [ `mkdir -p ~/1/1` -a `mkdir ~/2` ];thenecho "成立{$?}" elseecho "不成立{$?}" fi

资源县18443609420: shell if 多个条件的编写 -
矣莘硫酸: if [ "$file" = "$i" -a -d $file -a -d $i ]其实if [ "$file" = "$i" -a -d $file ] 因为既然 file 等于 i, 那么 file 是目录,则 i 也一定是目录,所以判断了 file 就不用再判断 i 了

资源县18443609420: shell if 多条件判断#!/bin/bashif mkdir ~/1/1 (1) mkdir ~/2 (2)then echo "成立 $?"else echo "不成立 $?"fi 问题:让命令(1)、(2)为并列关系,“... -
矣莘硫酸:[答案] #!/bin/bash if mkdir ~/1/1 && mkdir ~/2 then echo "成立 $?" else echo "不成立 $?" fi

资源县18443609420: shell if函数中几种条件判断的区别 -
矣莘硫酸: 1、整数比较:[plain] view plain copy-eq 等于,如:if [ "$a" -eq "$b" ] 或 if [ $a -eq $b ] -ne 不等于,如:if [ "$a" -ne "$b" ] -gt 大于,如:if [ "$a" -gt "$b" ] -ge 大于等于,如:if [ "$a" -ge "$b" ] -lt 小于,如:if [ "$a" -lt "$b...

资源县18443609420: shell脚本中的if中多条件语句如何写.
矣莘硫酸: if [ $a = "aa" -a $b = "bb" ] || [$c = "cc" -a $d = "dd" ]; then echo "success" fi 是这个意思吗

资源县18443609420: shell判断文件是否存在 -
矣莘硫酸: if [ -e filename ]; then...存在做...else...不存在做...fi其他选项:与文件存在与否的判断-e 是否存在-f 是否为普通文件-d 是否为目录-s 是否为空的文件-p 是否为管道文件-b 是否为块设备文件-c 是否为字符设备文件-L 是否为...

资源县18443609420: 如何使用shell脚本中的if语句检查条件 -
矣莘硫酸: [root@localhost ~]# cat c a=1 if [ $a -eq 1 ];thenecho a 等于1 elseecho a 不等于1 fi [root@localhost ~]# sh c a 等于1

资源县18443609420: UNIX/Linux shell脚本 if语句的几个案例 -
矣莘硫酸: if [条件测试1] && (||) [条件测试2]; //以if为起始,后面可以接若 then //干个判断式,使用&&或|| 第一段程序执行内容 elif [条件测试3] && (||) [条件测试4]; //第二段的判断,如果第一 then //段没有符合就来此搜寻条件 第二段程序执行内容 else ...

资源县18443609420: 在shell的if条件里,判断 a>0 且 (b>0 或 c>0) ,如何编写?
矣莘硫酸: if [ $b -gt 0 -o $c -gt 0 -a $a -gt 0 ]; then ...... fi 对shell中的关系运算符说明如下: -gt 表示greater than,大于 -lt 表示less than,小于 -eq 表示 equal,等于 对shell中的连接符说明如下: -a 表示 and,且 -o 表示 or, 或 也可以写成这样: if [ $b -gt 0 ] || [ $c -gt 0 ] && [ $a -gt 0 ]; then ...... fi 其中,&&表示and,||表示or

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网