是否有一种简单的方法可以执行以下操作:
if ! some_command; then
some_commands;
fi
或
if [[ com1 && com2 ]]; then
something;
fi
它是使用的com1和com2的退出状态。
我意识到我可以通过使用||设置-e来获取退出状态并检查,等等。只是想知道是否有一些我想念的更简单。
ADDENDUM:我也意识到我能做到:
if some_command; then
else
some_commands;
fi
答案 0 :(得分:1)
!
可以在if
语句之外使用;它是一般的退出状态逆变器,不是if
语法的一部分。
! some_command && { some_commands; }
和
some_command || { some_commands; }
是等价的。您也可以使用
com1 && com2 && { some_commands; }
答案 1 :(得分:0)
:你可以这样写:其中<command1/2>
是/是一些带/不带参数的命令/脚本
$ <command1> 2>/dev/null || <command2> 2>/dev/null
第二个:你可以写一些类似的东西:
$ ( <command1> && <command2> ) 2>/dev/null && <command3> 2>/dev/null
例如:
$ echo 1 2>/dev/null || echo 0 2>/dev/null
1
$ ech1o 1 2>/dev/null|| echo 0 2>/dev/null
0
和
$ ( echo 1 && echo 2 ) 2>/dev/null && echo 3
1
2
3
以下内容不会打印任何内容,因为echo 3永远不会执行(由于echo1不是有效命令)
$ ( echo1 1 && echo 2 ) 2>/dev/null && echo 3