【发布时间】:2015-05-08 02:29:29
【问题描述】:
我有一个脚本,它使用killall 来确保应用在启动之前尚未运行:
#!/bin/bash
set -e
some_command
another_command
sudo killall myapp # this causes the script to fail if myapp isn't running
sleep 10
myapp start
但是,如果 myapp 没有运行,killall 将退出脚本,因为它返回一个错误。
解决此问题的一种方法是暂时禁用set -o errexit:
#!/bin/bash
set -e
some_command
another_command
set +e
sudo killall myapp # this causes the script to fail if myapp isn't running
set -e
sleep 10
myapp start
但是,上述方法相当混乱。还有哪些其他选项可以暂时禁用set -e?
【问题讨论】:
-
我知道没有其他方法,但如果它只是一个命令,你可以忽略它的退出代码:
some_command || true