質問: goがマシンにインストールされているかどうかを確認する シェルスクリプトを作成していて、コマンドgo get github.com/aktau/github-releaseを使用してgithubから何かをプルする必要がありますが、最初に、スクリプトを呼び出す人が自分のマシンにgoがインストールされていることを確認する必要があります。インストールされていない場合、スクリプトはエラーになり、goをインストールしてからスクリプトを再実行するように指示します。echo $gopathだけでいいと思っていたのですが、gopathを定義しなくてもgoをインストールできます。どうすればこれを行うことができますか?
回答: path環境変数を確認する必要があります。詳細な説明については、 この回答 を参照してください。 bashがシェル/ハッシュバンである場合、一貫して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; }