外部コマンド(wget、svnなど)が存在するかどうかを検出する方法はありますか?
もっと具体的に言えば、今日私が書いたスクリプトの1つを実行しようとしましたが、その人はwget
svnをインストールしませんでした。
スクリプトは単にファイルをダウンロードし、解凍するか、svnを使用してトランクをエクスポートします。
答え1
Bashでtype
組み込まれたシェルは、エイリアス、関数、実行可能ファイルなどの実行可能ファイルに関する情報を提供します。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'