スクリプト内の外部コマンドの存在をどのように検出しますか?

スクリプト内の外部コマンドの存在をどのように検出しますか?

外部コマンド(wget、svnなど)が存在するかどうかを検出する方法はありますか?

もっと具体的に言えば、今日私が書いたスクリプトの1つを実行しようとしましたが、その人はwgetsvnをインストールしませんでした。

スクリプトは単にファイルをダウンロードし、解凍するか、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'

関連情報