เช่น
if [ "$FOO" = "true" ]; then
VS
if [ $FOO = "true" ]; then
ความแตกต่างคืออะไร? ดูเหมือนว่าทั้งสองคำสั่งใช้งานได้เช่นกัน
a='foo bar'; [[ $a == "foo bar" ]]
ด้านขวาจะต้องถูกยกมา: อย่างไรก็ตามตัวแปรที่ไม่ประกอบด้วยอักขระ glob [[ $a == $a ]]
ไม่จำเป็นต้องเป็น: การขยายคำไม่ได้ดำเนินการภายในวงเล็บเหลี่ยมสองชั้น และสำหรับการจับคู่ regex รูปแบบทางด้านขวามือจะต้องไม่ถูกยกมาหรือมันจะถูกนำมาเป็นสตริงตัวอักษร: [[ $a =~ .*oo.*r ]]
(รูปแบบควรอยู่ในตัวแปรยกเลิกการยกอย่างไรก็ตามแทน ...
[[ $a == foo* ]]
จะต้องไม่ถูกยกมาไม่ว่าจะเป็นตัวอักษรหรือในตัวแปร: คุณสามารถให้ตัวอย่างเพิ่มเติมของข้อกำหนดสำหรับการอ้างอิงนอกเหนือจากตัวอย่างสตริงตัวอักษรของฉันได้หรือไม่?