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而使用&& ||。
then
echo "success"
fi
then
echo "success"
fi
是这个意思吗
then
echo "success"
else
echo "false"
fi
解释:shell中,支持==,也支持=。
==是比较,=是赋值。(看评论中的年限是16年的,或许18年的现在代码更新换代了吧)
-a 可以理解为and
-r 可以理解为or
if后面跟[],且与或非三种必须在[]中使用!