一行代码实现shell if else逻辑
前言
前几天学习 shell 脚本,发现这种好用的写法,简单记录一下。
if else 一行实现
if [ 1=1 ] ;then echo "条件成立";else echo "条件不成立"; fi
关键点就在在代码块分支逻辑间位置加上;就可以实现逻辑写到一行
|| && 实现if else逻辑
wenshuo.wang@LG-H2-SD-114-36:~$ function test
> {
> echo 1
> }
wenshuo.wang@LG-H2-SD-114-36:~$ test && echo "条件成立" || echo "条件不成立"
1
条件成立
利用 && 和 || 判断逻辑顺序实现if else逻辑,当 test 返回值为1,则执行 并且 逻辑,如果返回为0 则执行 或 逻辑。
这里利用函数,主要是if逻辑不能作为执行语句从而获得返回值。
不过这里有两个问题:
- 输出了函数返回值
- 每次判断逻辑声明一个函数反而臃肿
针对第一个问题可以修改为:
wenshuo.wang@LG-H2-SD-114-36:~$ test &>/dev/null && echo "条件成立" || echo "条件不成立"
条件成立
针对第二个问题,可以使用 expr命令:
wenshuo.wang@LG-H2-SD-114-36:~$ expr 1 = 1 &>/dev/null && echo "条件成立" || echo "条件不成立"
条件成立
wenshuo.wang@LG-H2-SD-114-36:~$ expr 1 = 2 &>/dev/null && echo "条件成立" || echo "条件不成立"
条件不成立
expr 同样也可以判断字符串是否相等,也可以判断数值大小,可以满足所有判断条件
本文来自博客园,作者:Hello_wshuo,转载请注明原文链接:https://www.cnblogs.com/Hellowshuo/p/16345724.html