สำหรับผู้เริ่มต้นหากคุณสามารถทำการสันนิษฐานได้ว่า 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>เพื่อการพกพาในปัจจุบัน