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