แก้ไขข้อผิดพลาดไวยากรณ์ Bash ใกล้ Token ที่ไม่คาดคิด
เบ็ดเตล็ด / / May 30, 2022
![แก้ไขข้อผิดพลาดไวยากรณ์ Bash ใกล้ Token ที่ไม่คาดคิด](/f/2354f2ec9eb0c3c29d140a06e3066a5f.png)
การเข้ารหัสใน Linux Bash Terminal ได้กลายเป็นแนวทางปฏิบัติที่โดดเด่นในภาคการเข้ารหัส วิศวกรซอฟต์แวร์และนักเรียนที่เรียนภาษาเขียนโค้ดพบข้อผิดพลาดต่างๆ หากคุณเห็นข้อผิดพลาดซ้ำ ๆ เช่นข้อผิดพลาดทางไวยากรณ์ใกล้กับโทเค็นที่ไม่คาดคิด '(' หรือข้อผิดพลาดทางไวยากรณ์ของ Bash ใกล้โทเค็นที่ไม่คาดคิด คุณสามารถลองใช้วิธีการที่อธิบายไว้ในบทความและกลายเป็นผู้เชี่ยวชาญ คนเขียนโค้ด อ่านวิธีการที่อธิบายไว้ในบทความตามลำดับที่อธิบายไว้และแก้ไขข้อผิดพลาดในบรรทัดคำสั่งในไฟล์ของคุณ
![แก้ไขข้อผิดพลาดไวยากรณ์ Bash ใกล้ Token ที่ไม่คาดคิด](/f/2e157f68698de3d4eee628460954a7e6.png)
สารบัญ
- วิธีแก้ไขข้อผิดพลาดไวยากรณ์ Bash ใกล้ Token ที่ไม่คาดคิด
- วิธีที่ 1: แก้ไขข้อผิดพลาดในแต่ละบรรทัดคำสั่ง
- ขั้นตอนที่ I: อ่านเนื้อหาของไฟล์
- ขั้นตอนที่ II: ลบ Windows Line breaks
- ขั้นตอนที่ III: ตั้งค่าการอนุญาตเป็นไฟล์ที่สร้างขึ้นใหม่
- ขั้นตอนที่ IV: จัดรูปแบบโค้ดในไฟล์
- วิธีที่ 2: เขียนโค้ดใหม่
- วิธีที่ 3: ใช้คำสั่ง Dos2unix.exe
วิธีแก้ไขข้อผิดพลาดไวยากรณ์ Bash ใกล้ Token ที่ไม่คาดคิด
Linux Bash เป็นล่ามบรรทัดคำสั่งสำหรับระบบที่ใช้ Linux และเป็นการแทนที่ Bourne Shell หรือ sh ไฟล์ถูกตั้งชื่อโดยใช้รูปแบบ .sh ใน Linux ทุบตี การเขียนสคริปต์ หากมีปัญหาการจัดรูปแบบในโค้ดในเชลล์สคริปต์ คุณอาจพบข้อผิดพลาดทางไวยากรณ์ หากข้อผิดพลาดอยู่ใกล้กับ
( ตัวอักษร เชลล์จะแจ้งให้คุณทราบถึงข้อผิดพลาดในบรรทัดและจะแสดงข้อผิดพลาดในบรรทัดที่เกี่ยวข้อง เนื่องจาก Linux Bash เป็นล่าม บรรทัดที่มีข้อผิดพลาดจะถูกส่งคืนถึงคุณใน Terminal และจะหยุดสแกนคำสั่งที่เหลือในสคริปต์ ดังนั้น คุณต้องแก้ไขข้อผิดพลาดในบรรทัดคำสั่งเฉพาะและดำเนินการต่อไปเพื่อแก้ไขข้อผิดพลาดโทเค็นที่ไม่คาดคิดในเชลล์สคริปต์ สาเหตุของข้อผิดพลาดทางไวยากรณ์ใกล้กับโทเค็นที่ไม่คาดคิดใน Linux Bash มีการระบุไว้ด้านล่างในส่วนนี้ดังต่อไปนี้:- การเข้ารหัสด้วย Escape Sequences- หากคุณได้เขียนโค้ดในสคริปต์ Bash เอสเควนซีเควนซ์หรือเครื่องหมายอัญประกาศในสคริปต์อาจทำให้เกิดข้อผิดพลาด ลำดับหลีกและเครื่องหมายคำพูดต้องเขียนในรูปแบบที่ถูกต้องเพื่อแก้ไขข้อผิดพลาด
- ไวยากรณ์ไม่ถูกต้องในไฟล์การเข้ารหัส- ไวยากรณ์ในโค้ดอาจทำให้เกิดข้อผิดพลาดทางไวยากรณ์หากคำสั่งเขียนในรูปแบบที่ไม่ถูกต้อง เช่น การเปลี่ยนลำดับของลูป
- การใช้คำสั่งผิด - ถ้าคุณใช้คำสั่งไม่ถูกต้อง เช่น กำหนดค่าไม่ถูกต้อง คุณอาจมีข้อผิดพลาดทางไวยากรณ์
- OS ที่เข้ากันไม่ได้ในระบบ- หากเชลล์สำหรับสคริปต์การเข้ารหัสเข้ากันไม่ได้ระหว่างระบบ Unix และ DOS คุณอาจมีข้อผิดพลาดที่ไม่คาดคิด
- ปัญหาใน bash shell script- ปัญหาที่ทำงานอยู่ในสคริปต์เชลล์ทุบตีในไฟล์ที่คัดลอกมาจากระบบอื่น อาจทำให้เกิดข้อผิดพลาดของโทเค็นที่ไม่คาดคิด
พิจารณาไฟล์ชื่อ ตัวอย่าง.sh สร้างขึ้นในสคริปต์ Linux Bash ด้วยบรรทัดคำสั่งต่อไปนี้เพื่อจุดประสงค์ในการอธิบาย ไฟล์ตัวอย่างมีความเป็นไปได้สำหรับข้อผิดพลาดทางไวยากรณ์และรวมถึงคำสั่งที่เป็นไปได้ทั้งหมดที่สามารถใช้ได้ในเชลล์สคริปต์
str= 'บรรทัดคำสั่งแรกของ '(ไฟล์ตัวอย่าง)' ในสคริปต์'str= [(1,2),(3,4)]ถ้า[ $day == “mon” ] แล้ว ก้อง “จันทร์”อื่น echo "ไม่มีจันทร์"fiสำหรับตัวแปรใน {0..2}; แล้วทำ echo command1; คำสั่งเสียงสะท้อน2; คำสั่งเสียงสะท้อน3; คำสั่งสะท้อน4; เสร็จแล้วในขณะที่จริง; ทำถ้า [ $ วัน == “จันทร์” ]; แล้วก้อง “จันทร์”; อื่นสะท้อน "ไม่ใช่จันทร์"; เสร็จแล้ว; fi
![ตัวอย่างไฟล์พร้อมบรรทัดคำสั่งใน linux bash](/f/344e7f952af898601d5d35c319efb1ef.png)
วิธีที่ 1: แก้ไขข้อผิดพลาดในแต่ละบรรทัดคำสั่ง
วิธีแรกในการแก้ไขข้อผิดพลาดคือการแก้ไขข้อผิดพลาดทางไวยากรณ์ด้วยตนเองในแต่ละบรรทัดคำสั่งในสคริปต์ ขั้นตอนในการแก้ไขข้อผิดพลาดทางไวยากรณ์ใกล้กับโทเค็นที่ไม่คาดคิดในบรรทัดคำสั่งจะกล่าวถึงในส่วนนี้ กระบวนการแก้ไขข้อผิดพลาดโทเค็นที่ไม่คาดคิดในเทอร์มินัลอธิบายไว้ด้านล่าง เรียกใช้ไฟล์ใน เทอร์มินัล โดยการพิมพ์ ./example.sh สั่งแล้วกด เข้ากุญแจ.
![คำสั่งเปิดไฟล์ example.sh แก้ไขข้อผิดพลาดไวยากรณ์ Bash ใกล้ Token ที่ไม่คาดคิด](/f/eb83f5a3f3513627738ad7508e25bfa0.png)
2. หมายเหตุ เส้น ที่มีข้อผิดพลาดโทเค็นที่ไม่คาดคิดในบรรทัดคำสั่งในผลลัพธ์ด้านล่าง
3. แก้ไขข้อผิดพลาด ในแต่ละบรรทัดโดยปฏิบัติตามวิธีการที่กล่าวถึงด้านล่างเป็นรายบุคคลและ ประหยัด ไฟล์.
4. วิ่ง ไฟล์อีกครั้งหลังจากการเปลี่ยนแปลงและตรวจสอบว่าข้อผิดพลาดทางไวยากรณ์ได้รับการแก้ไขในไฟล์หรือไม่
ยังอ่าน:วิธีการติดตั้ง Linux Bash Shell บน Windows 10
ขั้นตอนที่ I: อ่านเนื้อหาของไฟล์
ขั้นตอนแรกในการแก้ไขข้อผิดพลาดทางไวยากรณ์ในบรรทัดคำสั่งคือการอ่านไฟล์ในเทอร์มินัล หากมีปัญหากับไฟล์ คุณอาจไม่สามารถดูไฟล์ได้ แนวทางปฏิบัติในการดูไฟล์เป็นประจำคือการเรียกใช้ไฟล์โดยใช้คำสั่ง ./example.sh แต่คุณไม่สามารถแก้ไขเนื้อหาในไฟล์ได้ ตัวเลือกในการดูเนื้อหาของไฟล์และแก้ไขบรรทัดคำสั่งเพื่อแก้ไขข้อผิดพลาดทางไวยากรณ์ใกล้กับโทเค็นที่ไม่คาดคิด '(' มีการกล่าวถึงด้านล่าง
ตัวเลือกที่ 1: ผ่านคำสั่ง CAT
ตัวเลือกแรกคือการใช้ แมว คำสั่งเพื่อดูไฟล์ในเชลล์สคริปต์ อ่านเนื้อหาของไฟล์ที่มีข้อผิดพลาดโทเค็นที่ไม่คาดคิดโดยใช้คำสั่ง cat โดยพิมพ์คำสั่ง cat –v example.sh ในเทอร์มินัล
หมายเหตุ 1: ดิ ตัวอย่าง.sh ใช้เพื่อวัตถุประสงค์ในการอธิบายและคุณต้องพิมพ์ชื่อไฟล์ที่มีข้อผิดพลาดโทเค็นที่ไม่คาดคิด
โน้ต 2: คำสั่ง cat –v ใช้เพื่อแสดงอักขระที่มองไม่เห็นทั้งหมดซึ่งมีแนวโน้มที่จะแสดงถึงการขึ้นบรรทัดใหม่หรือช่องว่างที่ไม่แตกหัก
![ไฟล์ example.sh เปิดคำสั่ง cat ในเทอร์มินัล linux](/f/9ceb27a4b15da3c8d9855d115a083953.png)
ตัวเลือกที่ 2: ผ่านคำสั่ง VX
หากคุณไม่สามารถใช้คำสั่ง cat ได้ คุณสามารถลองใช้คำสั่ง vx เพื่อดูและแก้ไขคำสั่งในไฟล์โดยใช้ขั้นตอนด้านล่าง พิมพ์ sh –vx ./example.sh คำสั่งใน Terminal เพื่อเปิดไฟล์
![คำสั่ง sh vx example.sh แก้ไขข้อผิดพลาดไวยากรณ์ Bash ใกล้ Token ที่ไม่คาดคิด](/f/ed772d3d5b9a6520718a93456b1da40e.png)
ตัวเลือก 3: ผ่าน od –a Command
3. หากมีอักขระที่มองไม่เห็นสองสามตัวในบรรทัดคำสั่ง คุณสามารถใช้คำสั่ง od –a เพื่อดูไฟล์ได้ หากเนื้อหาของไฟล์ไม่ปรากฏในไฟล์โค้ด คุณสามารถลองอ่านไฟล์โดยใช้คำสั่ง od –a example.sh เพื่อแก้ไขรหัส
![od คำสั่ง example.sh ใน linux terminal](/f/eeccd3252d58d02a2348dbe03685840b.png)
ขั้นตอนที่ II: ลบ Windows Line breaks
หากมีตัวแบ่งบรรทัดของ Windows ในเชลล์สคริปต์ คุณสามารถใช้คำสั่งคอนโซลเพื่อลบการขึ้นบรรทัดใหม่ และคัดลอกบรรทัดโค้ดไปยังไฟล์ใหม่เพื่อแก้ไขข้อผิดพลาด
ป้อนคำสั่งต่อไปนี้ใน Terminal เพื่อบันทึกเนื้อหาในไฟล์ไปยังไฟล์อื่นที่ชื่อ แก้ไขexample.sh เพื่อลบตัวแบ่งบรรทัด Windows ในสคริปต์
tr –d '\ r'แก้ไขexample.sh
![คำสั่งคอนโซลเพื่อลบตัวแบ่งบรรทัดของ windows แก้ไขข้อผิดพลาดไวยากรณ์ Bash ใกล้ Token ที่ไม่คาดคิด](/f/4189da3a683faf469f5b3d1b8c9d4a70.png)
ขั้นตอนที่ III: ตั้งค่าการอนุญาตเป็นไฟล์ที่สร้างขึ้นใหม่
คุณต้องตั้งค่าการอนุญาตสำหรับไฟล์ที่สร้างขึ้นใหม่เพื่อแก้ไขไฟล์เพื่อให้สามารถดำเนินการไฟล์ในเชลล์ได้ พิมพ์คำสั่งเป็น chmod 755 แก้ไขตัวอย่าง.sh ใน Terminal เพื่อให้สิทธิ์กับไฟล์และเรียกใช้ไฟล์ ขณะนี้คุณสามารถดูไฟล์ที่แก้ไขและแก้ไขปัญหาการจัดรูปแบบและแก้ไขข้อผิดพลาดทางไวยากรณ์ใกล้กับโทเค็นที่ไม่คาดคิด '(' ในไฟล์
![chmod 755 คำสั่ง Correctedexample.sh เพื่อตั้งค่าการอนุญาตในเทอร์มินัล linux](/f/c24a2acb4404215bee3be626386b905c.png)
ขั้นตอนที่ IV: จัดรูปแบบโค้ดในไฟล์
ขั้นตอนที่สองคือการจัดรูปแบบบรรทัดโค้ดทีละรายการและแก้ไขบรรทัดคำสั่งในไฟล์ด้วยตนเอง ตัวเลือกในการจัดรูปแบบไฟล์เพื่อแก้ไขข้อผิดพลาดทางไวยากรณ์ใกล้กับโทเค็นที่ไม่คาดคิด '(' มีการกล่าวถึงด้านล่างในส่วนนี้
ตัวเลือกที่ 1: แทนที่อัญประกาศเดี่ยวด้วยอัญประกาศคู่
หากคุณกำลังใช้เครื่องหมายคำพูดเดี่ยวในบรรทัดคำสั่ง คุณต้องแก้ไขคำสั่งโดยแทนที่เครื่องหมายคำพูดเดี่ยวด้วยเครื่องหมายคำพูดคู่เพื่อแก้ไขข้อผิดพลาดทางไวยากรณ์ ใน ตัวอย่าง.sh file ให้ลบโค้ดบรรทัดที่มี ‘ และ ’ หรือ คำพูดเดียว ในคำสั่งและแทนที่เครื่องหมายคำพูดเดี่ยวด้วย คำพูดคู่ หรือ “ และ ’’. ในไฟล์ตัวอย่าง คุณต้องเปลี่ยนรหัสเป็น str= “บรรทัดคำสั่งแรกของ “\(ไฟล์ตัวอย่าง)\” ในสคริปต์”
บันทึก: เครื่องหมายคำพูดคู่จำเป็นสำหรับคำสั่งประเภทพารามิเตอร์ เช่น str= “[(1,2),(3,4)]”.
![แทนที่อัญประกาศเดี่ยวด้วยอัญประกาศคู่ใน example.sh bash file](/f/d1843275f7639d3715f78f682a77378f.png)
ยังอ่าน:20 Linux Distros ที่เบาที่สุดแห่งปี 2022
ตัวเลือกที่ 2: เพิ่ม $ ให้กับ String Lines
หากคุณได้เพิ่มค่าสตริงให้กับสคริปต์ คุณต้องเพิ่ม $ ให้กับค่าสตริงเพื่อแก้ไขข้อผิดพลาดทางไวยากรณ์ในสคริปต์ เพิ่ม $ สำหรับบรรทัดคำสั่งด้วย the สตริง ค่าเพื่อแก้ไขข้อผิดพลาดที่ไม่คาดคิด ในไฟล์ตัวอย่าง ให้เปลี่ยนบรรทัดคำสั่งเป็น
str= $ 'บรรทัดคำสั่งแรกของ '\(ไฟล์ตัวอย่าง)\' ในสคริปต์'
บันทึก: หากคุณกำลังใช้ $ ในค่าสตริง คุณสามารถข้ามลำดับหลีกแบ็กสแลชได้ เนื่องจากบรรทัดคำสั่งถูกถอดรหัสโดยมาตรฐาน ANSI C กล่าวอีกนัยหนึ่ง โดยใช้ $ สำหรับค่าสตริง คุณสามารถหลีกเลี่ยงการใช้เครื่องหมายอัญประกาศคู่แทนอัญประกาศเดี่ยวในบรรทัดคำสั่งได้
![เครื่องหมายดอลลาร์ในบรรทัดสตริง แก้ไขข้อผิดพลาดไวยากรณ์ Bash ใกล้ Token ที่ไม่คาดคิด](/f/0817bde26be03406189a6bd9b2df3988.png)
ตัวเลือก 3: แปลงแท็บเป็น Spaces
ช่องว่างที่คุณทิ้งไว้ระหว่างสองคำสั่งในคำสั่งจะต้องเป็นช่องว่างแทนที่จะเป็นแท็บเพื่อแก้ไขข้อผิดพลาดทางไวยากรณ์ในสคริปต์ หากคุณได้รับข้อผิดพลาดใน Cygwin คุณสามารถลองแปลงแท็บในรหัสเป็นช่องว่างเพื่อแก้ไขข้อผิดพลาด บรรทัดคำสั่งได้รับด้านล่างเป็น;
ทำ echo command1; คำสั่งเสียงสะท้อน2; คำสั่งเสียงสะท้อน3; คำสั่งสะท้อน4; เสร็จแล้ว
![แท็บที่ใช้ในคำสั่ง do echo ใน example.sh bash file](/f/0d45254ce6363b1fda45a7e3d93fe1f2.png)
คำสั่งดังกล่าวควรเขียนใหม่ตามที่แสดงด้านล่างเพื่อแก้ไขข้อผิดพลาด
ทำ echo command1; คำสั่งเสียงสะท้อน2; คำสั่งเสียงสะท้อน3; คำสั่งสะท้อน4; เสร็จแล้ว
ตัวเลือกที่ 4: ใช้อักขระ Escape
หากคุณกำลังใช้อักขระ bash สิ่งสำคัญคือต้องใช้อักขระหลีกร่วมกับอักขระ bash เพื่อแก้ไขข้อผิดพลาดทางไวยากรณ์ ดิ วงเล็บ หรือ () เป็นอักขระพิเศษทุบตีในไฟล์ ดังนั้น คุณจะต้องใช้อักขระหลีกหรือ แบ็กสแลช ในบรรทัดคำสั่งเพื่อหลีกหนีจากอักขระปกติเพื่อดำเนินการคำสั่ง ดิ str= 'บรรทัดคำสั่งแรกของ \'(ไฟล์ตัวอย่าง)\' ในสคริปต์' คำสั่งจะไม่ทำให้เกิดข้อผิดพลาดใน Terminal เนื่องจากมีการใช้อักขระหลีก
ยังอ่าน: วิธีเข้าร่วมในหมู่พวกเราบน Linux
ตัวเลือกที่ 5: ใช้ช่องว่างระหว่างตัวอักษร
เชลล์สคริปต์รู้จักคำสั่งและคำสั่งในสคริปต์ด้วยค่าดีฟอลต์ คุณต้องแน่ใจว่ามีการใช้ช่องว่างระหว่างอักขระอย่างเหมาะสม เพื่อให้เชลล์สามารถระบุคำสั่งที่ให้ไว้ในสคริปต์ได้ ช่องว่างเป็นอักขระที่ใช้เพื่อแยกความแตกต่างระหว่างอักขระสองตัวในบรรทัดคำสั่ง ในโค้ดไม่มีช่องว่างระหว่าง ถ้า และ [ซึ่งให้ข้อผิดพลาดโทเค็นที่ไม่คาดคิดเป็น ถ้า[ คำสั่งไม่ได้ระบุโดยเชลล์ หากเปลี่ยนรหัสเป็น ถ้า [ $ วัน == “จันทร์” ]; ข้อผิดพลาดสามารถแก้ไขได้ตามคำสั่งเชลล์ ถ้า ถูกระบุโดยเปลือก
ตัวเลือก 6: ใช้ตัวคั่นคำสั่งสำหรับคำสั่ง
คำสั่งต่างๆ ในเชลล์สคริปต์จำเป็นต้องแยกออกเป็นคำสั่งสำหรับ Terminal เพื่อระบุแต่ละคำสั่ง คุณต้องใช้ตัวคั่นคำสั่งเพื่อแก้ไขข้อผิดพลาดทางไวยากรณ์ใน Linux Bash คำสั่งในคำสั่งต้องคั่นด้วยตัวคั่นคำสั่ง เช่น อัฒภาคหรือa ; หรือขึ้นบรรทัดใหม่โดยกด เข้า กุญแจ. เช่น คำสั่งในโค้ด ถ้า [ $ day == “mon” ] แล้ว จะต้องมีการเปลี่ยนแปลงเป็น ถ้า [ $ วัน == “จันทร์” ]; แล้ว เพื่อแก้ไขข้อผิดพลาด เนื่องจากเครื่องหมายอัฒภาคถูกใช้เป็นตัวคั่นคำสั่งระหว่างอักขระ [ และ แล้วคุณสามารถแก้ไขข้อผิดพลาดนี้ได้
![แก้ไขคำสั่ง example.sh ในไฟล์ทุบตี แก้ไขข้อผิดพลาดไวยากรณ์ Bash ใกล้ Token ที่ไม่คาดคิด](/f/b15f316943e7bcadc70a7438e4541261.png)
ตัวเลือก 7: ลบคำชี้แจงเพิ่มเติม
บางครั้ง คุณอาจเพิ่มข้อความสั่งเพิ่มเติมหรืออาจผสมรหัสในกรณีที่มีการวนซ้ำซ้อนกันหลายรายการ คุณต้องลบคำสั่งเพิ่มเติมในบรรทัดคำสั่งเพื่อแก้ไขข้อผิดพลาดทางไวยากรณ์ใกล้กับโทเค็นที่ไม่คาดคิด '(' ใน Linux Bash ทุบตีลูป สำหรับ…เสร็จแล้ว หรือและสิ่งก่อสร้างต่างๆ ถ้า… fi ต้องอยู่ในรูปแบบที่ถูกต้อง ไฟล์ตัวอย่างมีไวยากรณ์ที่ไม่ถูกต้องใน the สำหรับ ลูปมีคำว่า แล้ว ที่ใช้ใน ถ้า คำแถลง. การแก้ไขรหัสเป็นรหัสต่อไปนี้จะแก้ไขข้อผิดพลาดโทเค็นที่ไม่คาดคิด ถ้อยแถลง แล้ว เป็นคำสั่งเพิ่มเติมในรหัสและการลบคำจะแก้ไขข้อผิดพลาด
สำหรับตัวแปรใน {0..2}; ทำ echo command1; คำสั่งเสียงสะท้อน2; คำสั่งเสียงสะท้อน3; คำสั่งสะท้อน4; เสร็จแล้ว
![แก้ไขคำสั่ง for ใน example.sh bash file](/f/09f0a51ef4558250313a51dc7e1c714c.png)
ตัวเลือกที่ 8: ตรวจสอบให้แน่ใจว่าลำดับการปิดงบถูกต้อง
หากคุณกำลังใช้คำสั่งโครงสร้างแบบซ้อนหรือแบบมีเงื่อนไขจำนวนมากในเชลล์สคริปต์ คุณต้องแน่ใจว่าลูปปิดตามลำดับที่เปิด คุณสามารถใช้ตัวคั่นบรรทัดใหม่เพื่อหลีกเลี่ยงความขัดแย้งกับลูป ลำดับการปิดลูปที่ซ้อนกันและข้อความสั่งแบบมีเงื่อนไขควรถูกต้องและต้องไม่เปลี่ยนแปลง ลูปในโค้ด ในขณะที่จริง; ทำถ้า [ $ วัน == “จันทร์” ]; แล้วก้อง “จันทร์”; อื่นสะท้อน "ไม่ใช่จันทร์"; เสร็จแล้ว; fi ต้องปิดในลำดับที่ถูกต้อง การแก้ไขโค้ดที่แสดงด้านล่างสามารถแก้ไขข้อผิดพลาดของโทเค็นที่ไม่คาดคิดได้ เนื่องจากลำดับการปิดคำสั่งได้รับการแก้ไขแล้ว
ในขณะที่จริง; ทำถ้า [ $ วัน == “จันทร์” ]; แล้วก้อง “จันทร์”; อื่นสะท้อน "ไม่ใช่จันทร์"; ไฟ; เสร็จแล้ว
![ทำในขณะที่คำสั่ง แก้ไขข้อผิดพลาดไวยากรณ์ Bash ใกล้ Token ที่ไม่คาดคิด](/f/06ce0c213abb15c053f52ccdce91cbb1.png)
ยังอ่าน:ล่ามบรรทัดคำสั่งคืออะไร?
วิธีที่ 2: เขียนโค้ดใหม่
หากคุณได้คัดลอกโค้ดและวางลงในไฟล์ใหม่ใน Terminal คุณสามารถลองเขียนโค้ดใหม่ด้วยตนเองเพื่อแก้ไขข้อผิดพลาด ข้อผิดพลาดในโค้ดสามารถแก้ไขได้หากคุณเขียนโค้ดโดยไม่มีข้อผิดพลาดรูปแบบใดๆ ในเชลล์สคริปต์ เนื่องจากอักขระที่ซ่อนอยู่และปัญหาการจัดรูปแบบในโปรแกรมแก้ไขข้อความ เช่น Microsoft Word คุณอาจเคยใช้ในการคัดลอกและวางโค้ดอาจทำให้เกิดข้อผิดพลาด
วิธีที่ 3: ใช้คำสั่ง Dos2unix.exe
หากคุณกำลังใช้ระบบปฏิบัติการ Unix คุณสามารถเขียนโค้ดด้วยอักขระป้อนบรรทัดเป็น \n เพื่อย้ายไปยังบรรทัดถัดไปในไฟล์ อย่างไรก็ตาม หากคุณใช้ระบบปฏิบัติการ Windows คุณต้องย้ายไปยังบรรทัดถัดไปในโค้ดโดยใช้การขึ้นบรรทัดใหม่และการป้อนบรรทัดหรือ \r\n ในไฟล์. หากคุณรันโค้ดที่เขียนในระบบปฏิบัติการ Windows ใน Cygwin คุณอาจได้รับข้อผิดพลาดทางไวยากรณ์ใกล้กับโทเค็นที่ไม่คาดคิด '('
เพื่อแก้ไขข้อผิดพลาด คุณต้องล้างอักขระขึ้นบรรทัดใหม่โดยใช้ DOS เป็น Unix เครื่องมือบรรทัดคำสั่งเป็นเครื่องมือแปลงรูปแบบไฟล์ข้อความ พิมพ์คำสั่งต่อไปนี้เป็น dos2unix.exe example.sh ใน Terminal และคุณสามารถแปลงไฟล์เป็นรูปแบบ Unix
![คำสั่ง dos2unix.exe example.sh แก้ไขข้อผิดพลาดไวยากรณ์ Bash ใกล้ Token ที่ไม่คาดคิด](/f/d5fbbb36fde3491200cea82d465ff68a.png)
ที่แนะนำ:
- วิธีสร้างบัญชีโทรเลขบน Android
- แก้ไขข้อผิดพลาดรันไทม์ C++ บน Windows 10
- วิธีการลบบัญชี Github อย่างถาวร
- การ์ดกราฟิกที่ดีที่สุด 14 อันดับแรกสำหรับ Linux
บทความได้กล่าวถึงวิธีการพื้นฐานในการแก้ไข ข้อผิดพลาดทางไวยากรณ์ของ Bash ใกล้กับโทเค็นที่ไม่คาดคิด‘(’ ในสคริปต์ หากคุณกำลังใช้ Linux Bash คุณสามารถใช้วิธีการที่อธิบายไว้ในส่วนนี้เพื่อแก้ไขข้อผิดพลาดทางไวยากรณ์ของ Bash ใกล้กับโทเค็นที่ไม่คาดคิด หากคุณได้อ่านบทความทั้งหมดแล้วและพบว่าเนื้อหามีประโยชน์ โปรดแจ้งให้เราทราบข้อเสนอแนะและข้อสงสัยของคุณในส่วนความคิดเห็น