shell脚本中的if中多条件语句如何写。

比如我实现这样一个效果:
if [ $a = "aa" -a $b = "bb" -o $c = "cc" -a $d = "dd" ]; then
echo success
fi
也就是变量a等于aa且变量b等于bb 或者 变量c等于cc且变量d等于dd 这样的条件成立的话,输出success
这个语句怎么写,我按上面那种写法,提示有错误。

可以使用 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而使用&& ||。

温馨提示:内容为网友见解,仅供参考
第1个回答  2019-06-03

1、首先要理解shell中if语句的用法才能更好的理解if多条件语句的写法,在shell中条件语句是“if-then”,if语句后面是一个命令执行结束的退出状态码是 0,则执行 then 部分的命令,否则then 不执行;fi是if的结束标志:


2、if语句的嵌套使用和其他语言基本一致,直接在if中继续使用if语句即可,嵌套的层数没有限制,但最好不要过多的层数,这样会让代码显得比较混来,难以理解:

3、多个条件判断使用“if then-elif then”,这里和其他编程语言不同,最后可以加else也可以不加else:

本回答被网友采纳
第2个回答  2019-11-12
if [ $a = "aa" -a $b = "bb" ] || [$c = "cc" -a $d = "dd" ];
then
echo "success"
fi本回答被网友采纳
第3个回答  推荐于2018-03-12
if [ $a = "aa" -a $b = "bb" ] || [$c = "cc" -a $d = "dd" ];
then
echo "success"
fi

是这个意思吗本回答被提问者和网友采纳
第4个回答  2018-03-12
if [ [ $a == "aa" -a $b == "bb"] -o [ $c == "cc" -a $d == "dd" ] ]
then
echo "success"
else
echo "false"
fi
解释:shell中,支持==,也支持=。
==是比较,=是赋值。(看评论中的年限是16年的,或许18年的现在代码更新换代了吧)
-a 可以理解为and
-r 可以理解为or
if后面跟[],且与或非三种必须在[]中使用!
相似回答