ソフトウェアがインストールされているかどうかを(スクリプトから)検出する最良の方法は何ですか?
以前は、さまざまwhichなプラットフォーム(LinuxとSolaris vx。OS X)でコマンドからの出力が異なることに不満を感じていました。異なるシェルが問題に関与している可能性もあります。 typeより良い代替案として提案されてきましたが、それはどれほどポータブルですか? 過去に、which実行したさまざまなユースケースの出力を解析して処理する関数を作成しました。それらは私が使用するすべてのマシンで動作するため、私の個人用スクリプトには問題ありませんが、他のユーザーが使用するためにどこかに投稿するソフトウェアには、これは非常に信頼できないようです。 考えられる例を1つだけ挙げると、bashとzshがマシンで使用可能かどうかをスクリプトから検出し、zshが存在する場合はzshを使用し、zshが存在せず、bashで十分な場合はbashを使用する必要があるとします。特定のバグがないバージョン。スクリプトの残りのほとんどは、BourneシェルまたはRubyなどですが、これはzshまたは最近のバージョンのbashのいずれかで行う必要があります(AFAIK)。 typeプラットフォーム間で利用できることを期待できますか?which特定のソフトウェアがインストールされているかどうかの質問に簡単かつ一貫して回答できる他の方法はありますか? (もしあなたが私が与えた例に特に関連した考えを与えたいならそれは素晴らしいですが、私は主に一般的なケースについて尋ねています:特定のものが特定のマシンにインストールされているかどうかを調べる最も信頼できる方法は何ですか? ?)