我正在尝试编写一个脚本,它使用“get”,并将用于不同的发行版。在debian上,它在'/usr/bin/get-iplayer‘中,但是在centos上,它在'/usr/bin/get_iplayer’中。
我已经检查过它是否被安装在-
if [[ -f "/usr/bin/get-iplayer" ]] || [[ -f "/usr/bin/get_iplayer" ]]
then
echo ;
else
echo "$(tput setaf 1) $(tput setab 7) Error: 'get-iplayer' or 'get_iplayer' is not installed. Please install it. $(tput sgr 0)"
fi那么,如果它可以有两个不同的名字,我怎么称呼它呢?
发布于 2014-01-28 14:37:34
if [[ -x "/usr/bin/get-iplayer" ]]
then player="/usr/bin/get-iplayer"
elif [[ -x "/usr/bin/get_iplayer" ]]
then player="/usr/bin/get_iplayer"
else echo "$0: error: neither get-iplayer nor get_iplayer is installed in /usr/bin" >&2
exit 1
fi
# Run it
"$player" ...发布于 2014-01-28 14:37:11
测试两个路径/名称,然后在脚本中设置一个别名,指向找到的别名。对脚本的其余部分使用该别名。
发布于 2014-01-28 16:11:24
与Jonathan的回答非常相似,但使用shell函数而不是参数展开:
get_iplayer () {
if [[ -x "/usr/bin/get-iplayer" ]]
then /usr/bin/get-iplayer "$@"
elif [[ -x "/usr/bin/get_iplayer" ]]
then /usr/bin/get_iplayer "$@"
else echo "$0: error: neither get-iplayer nor get_iplayer is installed in /usr/bin" >&2
exit 1
fi
}https://stackoverflow.com/questions/21408455
复制相似问题