私が書いたBASHスクリプトには2つの要件があります。
現在、私はこのようにインストールされていることを確認し、ユーザーから苦情が受け取られるまで、これは良い解決策だと思いました。
command -v fping >/dev/null 2>&1 || { echo >&2 "Sorry but fping is not installed. Aborting."; exit 1; }
command -v ifup >/dev/null 2>&1 || { echo >&2 "Sorry but ifupdown is not installed. Aborting."; exit 1; }
私は可能な限り多くのプラットフォームと潜在的なユーザー設定(例:/ binや/ sbinを含まないパス)で動作するようにこの記事を書くのが好きです。
私の小切手に関する提案はありますか?
答え1
私が書いたスクリプトは、コマンド機能がPOSIXと互換性があるため、あなたのスクリプトと同じです。ユーザーからどのような苦情を受けましたか?
これを見ることもできますが、同じ問題があります。Bashスクリプトにプログラムが存在するかどうかを確認するには?
答え2
同じ方法で「which」を使用できます。
編集:
いくつかの研究の後、この提案を少し変更する必要があります。
「which」は同じ方法で使用できますが、最終的には他のツール(場所、タイプ、コマンドなど)と同じ不確実性が発生します。
場合によっては、これらのすべてのツールが実行された実行可能ファイルを明確に決定できない可能性があり、見つかった実行可能ファイルが実際にインストールしたい実行可能ファイルであることを確認できるツールもありません(icarusが述べたように)。
あなたの問題を解決する簡単な方法はないと思いますが、あなたが苦情を提起していることを知らずに代替案を提示することは困難です。