เมื่อฉันใช้รหัสด้านล่างใน terminal SSH สำหรับ CentOS มันทำงานได้ดี:
paste <(printf "%s\n" "TOP")
แต่ถ้าฉันวางโค้ดบรรทัดเดียวกันในเชลล์สคริปต์ (test.sh) และรันเชลล์สคริปต์จากเทอร์มินัลมันจะพ่นข้อผิดพลาดเช่นนี้
./test.sh: line 30: syntax error near unexpected token ('
./test.sh: line 30: paste <(printf "%s\n" "TOP")
ฉันจะแก้ไขปัญหานี้ได้อย่างไร
#!/bin/sh
ที่ด้านบน ฉันทำตามbash test.sh
แต่มันก็ไม่ได้ผลเหมือนกัน
bash
ในโหมด POSIX ไม่สนับสนุนไวยากรณ์นั้น (เมื่อเรียกด้วย--posix
หรือเป็น/bin/sh
) #!/bin/bash
ใช้
POSIXLY_CORRECT
ตั้งค่าตัวแปรเมื่อคุณเริ่มbash
?
#!/bin/bash
ที่ด้านบนแก้ไขปัญหา
dash
แทนที่จะเป็นbash
)