コマンドがbashシェルで使用可能かどうかを確認するために、私は通常次のことを行います。
command -v $COMMAND >/dev/null 2>&1 || {
echo >&2 "Error: this script requires the command '$COMMAND' to be available"
exit 1
}
Windowsで同等のものは何ですか?
非常によく似たものを使用できます
%command% >nul 2>&1 || (
echo "Error: command not found"
exit /b 1
)
確かに、これは実際にコマンドを実行しますが、ほとんどのコマンドは適切なパラメーターがないと何もしません。より確実にしたい場合は、を使用できます%command% /? >nul 2&1
。これにより、コマンドを実行せずに、コマンドのヘルプページが表示されます。
更新:
コマンドを完全に実行しないようにするには、を検討してwhere.exe
ください。VistaおよびWindows7にバンドルされています。他のOSの場合は、ダウンロードできます。ダウンロード方法については、この投稿を参照してください
取得したら、/Q
スイッチを使用して実行し、余分な出力を回避できます。戻りコード0は、コマンドが見つかったことを意味します。私が見つけたのは、where
コマンドで拡張子を指定する必要があるということです。
もう一方の端では、拡張子を指定せずに機能するバッチ「ワンライナー」についてここで長い議論があります(ただし、拡張子を指定すると実際には失敗します)