如何检查实用程序'realpath'是否可用于脚本?

时间:2018-03-25 13:05:29

标签: shell utility realpath

我们被要求在shell中编写一个应该与每个常规shell(dash,ksh,bash)兼容的项目。我们还应该涵盖实用程序realpath在特定计算机上不可用的可能选项。有没有简单的方法来检查实用程序是否存在?

2 个答案:

答案 0 :(得分:1)

检查可执行文件是否可用可以通过多种方式完成。一种简单的方法是运行它,并检查返回码。如果您不想看到错误,请重定向:

realpath yourArgument 2> /dev/null
echo $?

if

realpath yourArgument 2> /dev/null
if [ $? -eq 127 ]; then
    #Realpath is missing!
fi

这样,如果realpath工作并且在路径中,您将打印实际路径,否则您输入if。注意0是约定的成功状态,adn 127是错误代码,表示缺少命令(Thanks @ user1934428,我之前使用的-gt 0可能会失败,因为realpath可能会返回非0状态。)

答案 1 :(得分:0)

如果我不理解,你想知道是否存在某个实用程序来检查目录是否存在?如果是这样的话,我总是在几个炮弹中使用这条线,我没有发现问题。

if [ -d "$DIRECTORY" ]; then
    # Control will enter here if $DIRECTORY exists.
fi