我正在编写一个 shell 脚本,我需要使用命令从 github 提取一些内容go get github.com/aktau/github-release
,但我首先需要确保调用脚本的人已在其机器上安装了 GO。如果他们没有安装,我的脚本将出错并告诉他们安装 GO,然后重新运行脚本。
我在想我应该只是echo $GOPATH
,但是人们可以在没有定义他们的 GOPATH 的情况下安装 GO。
我该如何做呢?
答案1
您应该检查PATH
环境变量。请参阅这个答案以获得详细解释。
bash
您的 shell/hashbang 在哪里,始终使用hash
(用于命令)或type
(考虑内置函数和关键字)。编写 POSIX 脚本时,使用command -v
。
$ 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; }