วิธีที่ดีที่สุดในการตรวจจับ (จากสคริปต์) ว่าติดตั้งซอฟต์แวร์คืออะไร?
ฉันเคยผิดหวังมาก่อนด้วยความแตกต่างของเอาต์พุตจากwhichคำสั่งข้ามแพลตฟอร์มที่แตกต่างกัน (Linux กับ Solaris vx. OS X) ด้วยกระสุนที่แตกต่างกันอาจจะเล่นในเรื่องนี้เช่นกัน typeได้รับการแนะนำว่าเป็นทางเลือกที่ดีกว่า แต่มันจะเป็นแบบพกพาได้อย่างไร ในอดีตฉันได้เขียนฟังก์ชั่นซึ่งแยกวิเคราะห์ผลลัพธ์whichและจัดการกรณีการใช้งานที่แตกต่างกันที่ฉันพบ พวกเขาทำงานในเครื่องที่ฉันใช้และก็โอเคสำหรับสคริปต์ส่วนตัวของฉัน แต่ดูเหมือนว่าไม่น่าเชื่อถืออย่างยิ่งสำหรับซอฟต์แวร์ที่ฉันจะโพสต์ที่อื่นเพื่อให้ผู้อื่นใช้ ในการใช้ตัวอย่างที่เป็นไปได้เพียงอย่างเดียวสมมติว่าฉันต้องตรวจจับจากสคริปต์ว่า bash และ zsh มีอยู่ในเครื่องหรือไม่จากนั้นเรียกใช้คำสั่งด้วย zsh หากมีอยู่และทุบตีถ้า zsh ไม่ได้และ bash นั้นเพียงพอ เวอร์ชันที่ไม่มีข้อผิดพลาดเฉพาะ ส่วนที่เหลือของสคริปต์อาจเป็น Bourne shell หรือ Ruby หรืออย่างอื่น แต่สิ่งนี้สิ่งหนึ่งที่ต้องทำ (AFAIK) ด้วย zsh หรือ bash เวอร์ชันล่าสุด ฉันสามารถนับtypeได้ว่ามีอยู่ในแพลตฟอร์มหรือไม่ มีทางเลือกอื่นwhichที่สามารถตอบคำถามได้อย่างง่ายดายและต่อเนื่องว่ามีการติดตั้งซอฟต์แวร์บางส่วนหรือไม่? (ถ้าคุณต้องการให้ความคิดที่เกี่ยวข้องกับตัวอย่างที่ฉันให้มาโดยเฉพาะนั้นยอดเยี่ยม แต่ฉันแค่ถามถึงกรณีทั่วไป: วิธีที่น่าเชื่อถือที่สุดในการตรวจสอบว่ามีการติดตั้งสิ่งใดในเครื่องที่กำหนดหรือไม่ ?)