Saya sudah frustrasi sebelumnya dengan perbedaan dalam output dari whichperintah di berbagai platform yang berbeda (Linux vs Solaris vx. OS X), dengan cangkang yang berbeda mungkin memainkan masalah ini juga. typetelah disarankan sebagai alternatif yang lebih baik, tetapi seberapa portabel hal itu?
Di masa lalu saya telah menulis fungsi yang mem-parsing keluaran whichdan menangani berbagai kasus penggunaan yang saya alami. Mereka bekerja di mesin yang saya gunakan, dan begitu juga untuk skrip pribadi saya, tetapi ini tampaknya sangat tidak dapat diandalkan untuk perangkat lunak yang akan saya posting di suatu tempat untuk digunakan orang lain.
Untuk mengambil satu contoh saja, misalkan saya harus mendeteksi dari skrip apakah bash dan zsh tersedia pada mesin, dan kemudian jalankan perintah dengan zsh jika ada, dan dengan bash jika zsh tidak dan bash sudah mencukupi versi untuk tidak memiliki bug tertentu. Sebagian besar skrip lainnya bisa berupa Bourne shell atau Ruby atau apa pun, tetapi yang satu ini harus dilakukan (AFAIK) dengan zsh atau versi bash terbaru.
Dapatkah saya mengandalkan typeketersediaan di berbagai platform? Apakah ada alternatif lain whichyang dapat dengan mudah dan konsisten menjawab pertanyaan apakah perangkat lunak tertentu diinstal?
(Jika Anda ingin juga memberikan ide-ide khusus yang terkait dengan contoh yang saya berikan, itu bagus, tapi saya terutama hanya bertanya tentang kasus umum: apa cara yang paling dapat diandalkan untuk mencari tahu apakah suatu hal tertentu dipasang pada mesin yang diberikan ?)
hashdancommand -v.