สำหรับผู้เริ่มต้นหากคุณสามารถทำการสันนิษฐานได้ว่า Bash นั้นได้รับการติดตั้งไว้ล่วงหน้า (ซึ่งความรู้ของฉันนั้นเป็นจริงในทุกระบบที่คุณอยู่ในรายการ) ให้ใช้ hashbang ต่อไปนี้เพื่อให้เข้ากันได้:
#!/usr/bin/env bash
จะเรียกนี้สิ่งที่bash
เกิดขึ้นจะมีการกำหนดค่าไม่ว่าไม่ว่าจะเป็นในหรือ/bin
/usr/local/bin
ในขณะที่อยู่ในระบบส่วนใหญ่ในช่วงกว้าง (รวมถึง AIX, Solaris, รสชาติ BSD หลายรายการ), bash
สิ้นสุดในตำแหน่งต่าง ๆ , env
มักจะลงเอย/usr/bin/env
ด้วย อย่างไรก็ตามเคล็ดลับไม่ใช่ของฉัน แต่มาจากผู้แต่งตำราอาหาร Bash
อย่างไรก็ตามใช่ Bash จะช่วยให้คุณใช้คุณสมบัติ "ทันสมัย" บางอย่างที่ทำให้ชีวิตของคุณง่ายขึ้น
ตัวอย่างเช่นเครื่องหมายวงเล็บคู่:
[[ -f "/etc/debian_version" ]] && echo "This is a Debian flavor"
ในขณะที่ในภาษาถิ่นของเปลือกหอยแบบดั้งเดิมคุณจะต้อง:
test -f "/etc/debian_version" && echo "This is a Debian flavor"
แต่สิ่งที่ดีที่สุดเกี่ยวกับวงเล็บคู่คือพวกเขาอนุญาตให้มีการแสดงออกปกติสำหรับการจับคู่ ทุบตีแฮกเกอร์วิกิพีเดียจะให้เทคนิคต่างๆในทิศทางนั้น
คุณยังสามารถใช้นิพจน์ที่ค่อนข้างสะดวกสบายเช่น$((2**10))
หรือนิพจน์ทางคณิตศาสตร์อื่น ๆ แบบอินไลน์กับ$((expression))
ไวยากรณ์
การใช้ backticks สำหรับ subshells นั้นใช้ได้แม้ว่าจะล้าสมัยไปเล็กน้อย แต่ความสามารถในการซ้อนของ$(command ...)
การเรียกใช้จะสะดวกกว่าเพราะคุณไม่ต้องหลบหนีหลาย ๆ อย่างในระดับย่อยต่าง ๆ
สิ่งเหล่านี้คือบางสิ่งที่ Bash มอบให้คุณผ่านทางsh
ไวยากรณ์POSIX ทั่วไปแบบดั้งเดิม
แต่ถ้าคุณต้องการพลังในเชลล์มากกว่า (ไม่ใช่แค่ในสคริปต์) ก็ลองดูzsh
ด้วย
/bin
/usr/bin
ผลลัพธ์ก็น่าจะดีกว่าที่จะใช้#!/usr/bin/env <shname>
เพื่อการพกพาในปัจจุบัน