คำถามติดแท็ก standard

1
POSIX รับประกันว่าสาธารณูปโภคมาตรฐานอยู่ใน PATH หรือไม่?
ในส่วน "คำสั่งการค้นหาและการดำเนินการ"ข้อมูลจำเพาะ POSIX บอกว่าPATHมีการค้นหาเมื่อค้นหายูทิลิตีที่จะดำเนินการ (มีข้อยกเว้นบางประการ) ข้อกำหนดระบุถึงที่ใดก็ตามที่PATHจะเริ่มต้นเป็นค่าที่รับประกันว่าจะพบสาธารณูปโภคทั้งหมดหรือไม่ หรือฉันต้องทำสิ่งต่อไปนี้เพื่อรับประกันว่าฉันจะไม่ได้รับข้อผิดพลาด "ไม่พบคำสั่ง" เมื่อพยายามเรียกใช้ยูทิลิตี้มาตรฐานหรือไม่ PATH=$(command -p sh -c 'printf %s "${PATH}"') (ดูข้อกำหนด POSIX ของcommandยูทิลิตี้ )
11 path  posix  standard 

2
เชลล์ไม่เฉพาะเจาะจงอะไร
ภายใต้คำตอบบางอย่างฉันเห็นความคิดเห็นที่แนะนำให้หลีกเลี่ยงคำสั่งเฉพาะของเชลล์ในคำตอบ ฉันจะรู้ได้อย่างไรว่าคำสั่งโอเปอเรเตอร์และอื่น ๆ มีอยู่ในทุกเชลล์? มีรายการมาตรฐานหรือไม่? man builtinsให้รายการคำสั่ง คำสั่งเหล่านั้นเป็นคำสั่งเดียวที่ฉันสามารถใช้ในเชลล์สคริปต์แบบพกพาที่ใช้ได้กับเชลล์ทั้งหมดหรือไม่? ในตัวสามารถเป็นเปลือกเฉพาะ? มาตรฐานสำหรับ Linux แตกต่างจาก Unixes อื่น ๆ หรือไม่? แล้วไวยากรณ์ล่ะ เครื่องหมายวรรคตอนโอเปอเรเตอร์และอื่น ๆ อาจแตกต่างกันในหอยบางตัวหรือไม่?

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