2011-08-23 138 views
1

如何在bash中写入命令? (用于用户测试,如果程序返回段错误,删除锁定文件。)如何在bash中写入命令?

su -c "/usr/local/bin/test || if $? > 0 then rm -fr /var/run/test.lock " test 

回答

1
su -c "/usr/local/bin/test || if [ $? -gt 0 ]; then rm -fr /var/run/test.lock; fi" test 

su -c "/usr/local/bin/test || [ $? -gt 0 ] && rm -fr /var/run/test.lock" test 
+0

dimba是绝对正确的,并且提供了正确的解决方案。如果!/ usr/local/bin/test;那么另一个带'if'的可能是'su -c“;然后rm -fr /var/run/test.lock; fi”' – glglgl

4

$?在执行su命令之前扩展双配额。

你不需要检查$? - ||的右侧部分仅在测试失败时执行:

su -c "/usr/local/bin/test || rm -fr /var/run/test.lock " test