根据命令返回结果做if判断
我希望执行一个shell命令,如果执行成功(返回0
)就执行一个动作,使用if then
的方法尝试如下:
目的是判断是否有内核模块以及从配置文件中查询是否有对应XYZ的版本,如果有则touch一个开关文件方便后续处理。
但是发现报错
这个报错参考 How to conditionally do something if a command succeeded or failed ,原来执行命令返回结果作为条件判断是不需要加 []
的,[
就是表示test
指令(另外半边]
只是为了配对,不用也可以)。
也就是说,如果你是判断一个文件或这目录是否存在,实际上就是隐含使用了 test
指令去检查文件是否存在,此时就需要使用 [
,例如:
但是,如果你是检查命令执行是否成功,则不要加 [
,例如:
另外常用的方式
这样执行命令出错就会有提示信息
正确的命令是
这里
if
条件中不使用()
也可以,加上是看上去清晰一些。
参考
Last updated