SHELL中判断命令是否存在的方法技术
在 SHELL 中如何判断某个命令是否存在,总结了下,一共三种方法。
$ command -v foo >/dev/null 2>&1 || { echo >&2 "I require foo but it's not installed. Aborting."; exit 1; } $ type foo >/dev/null 2>&1 || { echo >&2 "I require foo but it's not installed. Aborting."; exit 1; } $ hash foo 2>/dev/null || { echo >&2 "I require foo but it's not installed. Aborting."; exit 1; }
以上信息来源于 stackoverflow,在国内的一些社区也有类似的提供,不过总有一些瑕疵,不是少了空格,就是引号出问题。
发现 realpath 这个命令在 Ubuntu 中需要安装才能用,SHELL 脚本要写的兼容少不了需要判断某个命令是否存在的方法。
暂无