如何检测脚本中是否存在外部命令?

如何检测脚本中是否存在外部命令?

有没有办法检测外部命令是否存在(即wget、svn)?

更具体地说,今天,我试图运行我编写的脚本之一,但该人没有wget安装 svn。

该脚本只是下载一个文件并将其解压或使用 svn 导出主干。

答案1

在 Bash 中,type内置的 shell 提供了有关可执行文件的信息:别名、函数、可执行文件。help type详情请参阅。

# just check for existence
type -t 'yourfunction' > /dev/null || echo 'error: yourfunction not found'

# explicitly check for given type
[[ "$( type -t 'yourfunction' )" != 'function' ]] && \
    echo 'error: yourfunction not found or is not a function'

相关内容