我正在尝试创建一个基本实用程序,为此我需要在计算机上安装supervisord
。但是问题在于它取决于用户,他/她如何安装它,因此在这里我试图涵盖几乎所有情况以获得监督命令。
以下是我现在正在使用的代码。
if [[ -f "/opt/anaconda/bin/supervisord" ]]; then
RUNNER="/opt/anaconda/bin/supervisord"
elif [[ -f "/usr/local/bin/supervisord" ]]; then
RUNNER="/usr/local/bin/supervisord"
elif [[ -f "/usr/bin/supervisord" ]]; then
RUNNER="/usr/bin/supervisord"
elif [[ "$(command -v supervisord)" ]]; then
RUNNER="supervisord"
else
echo "supervisord is not install on this machine"
exit 1
fi
我正在寻找更好的方法来实现这一目标。
答案 0 :(得分:1)
发布的代码会检查一些绝对路径,
当它发现存在的时候,
它将使用它。
这不是一个好主意。
您可以期望用户以任何方式使用PATH
的正确版本来设置他们的supervisord
。
换句话说,PATH
上可用的命令必须是首选。
if type supervisord &>/dev/null; then
RUNNER=supervisord
elif ...
...
fi