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

比如我实现这样一个效果:if[$a="aa"-a$b="bb"-o$c="cc"-a$d="dd"];thenechosuccessfi也就是变量a等于aa且变量b等于b... 比如我实现这样一个效果:
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
这个语句怎么写,我按上面那种写法,提示有错误。
展开
 我来答
帐号已注销
2019-06-14 · TA获得超过1.2万个赞
知道答主
回答量:25
采纳率:0%
帮助的人:5777
展开全部

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

飞喵某
高粉答主

2019-06-03 · 说的都是干货,快来关注
知道答主
回答量:631
采纳率:0%
帮助的人:28.7万
展开全部

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


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

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

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
大野瘦子
高粉答主

2019-11-12 · 繁杂信息太多,你要学会辨别
知道小有建树答主
回答量:1227
采纳率:100%
帮助的人:32.7万
展开全部
if [ $a = "aa" -a $b = "bb" ] || [$c = "cc" -a $d = "dd" ];
then
echo "success"
fi
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
行走的标本
推荐于2018-03-12 · TA获得超过179个赞
知道答主
回答量:168
采纳率:0%
帮助的人:142万
展开全部
if [ $a = "aa" -a $b = "bb" ] || [$c = "cc" -a $d = "dd" ];
then
echo "success"
fi

是这个意思吗
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
良知红叶
2018-03-12
知道答主
回答量:6
采纳率:0%
帮助的人:2万
展开全部
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后面跟[],且与或非三种必须在[]中使用!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式