Score:1

วิธี จำกัด bash ให้จัดการกับสคริปต์บางส่วนเท่านั้น

ธง ws

เมื่อฉันทดสอบสคริปต์ทุบตี ฉันตั้งค่าคำสั่ง exit เพื่อจำกัดทั้งหมดเฉพาะส่วนแรกของโค้ดเท่านั้น

แต่ bash จะจัดการกับสคริปต์ทั้งหมดเสมอ โดยส่งข้อความ errogr ไปยังโค้ดด้านล่างของคำสั่ง exit

ฉันมีวิธีแก้ไขเพื่อแสดงความคิดเห็นทั้งหมดด้านล่างของทางออกการดีบักของฉันเท่านั้น

ไม่สะดวก และสิ่งของนั้นมีอยู่ตั้งแต่ 30 ปีที่แล้ว

ในระหว่างนี้มี bash บางอย่างเช่น __END__ ใน perl หรือไม่

ในบางเชลล์ ตอบกลับ ใน Emacs เมื่อหลายปีก่อน มีความเป็นไปได้ที่จะเน้นส่วนของโค้ดและรันเชลล์ย่อยบนโค้ดที่เน้นสีนี้

ฉันไม่พบวิธีดังกล่าวใน kubuntu 20.04 ในกลุ่ม

แต่คงไม่ใช่วิธีแก้ปัญหาที่ต้องการ เนื่องจากต้องทำงานมาก

ความนับถือ แอนทอนดิดห์

hr flag
คุณสามารถเพิ่มตัวอย่างสั้นๆ ที่ทำซ้ำได้ของ `exit` ไม่ทำงานได้หรือไม่?
terdon avatar
cn flag
คุณช่วยอธิบายได้ไหมว่าเหตุใดจึงไม่สะดวกที่จะแสดงความคิดเห็นในส่วนที่เหลือ โปรแกรมแก้ไขที่เหมาะสมใดๆ และแน่นอนว่า IDE ทั้งหมดจะนำเสนอทางลัดง่ายๆ เพื่อแสดงความคิดเห็น/โค้ดที่ไม่แสดงความคิดเห็น ดังนั้นจึงเป็นเรื่องของการเลือกและกดทางลัด ตัวอย่างเช่น ใน emacs ของฉัน ฉันสามารถสลับการแสดงความคิดเห็นโดยใช้ทางลัด `C-c c` ซึ่งเชื่อมโยงกับ 'comment-or-uncomment-region'
Artur Meinild avatar
vn flag
สร้างสคริปต์ของคุณโดยใช้ฟังก์ชัน ด้วยวิธีนี้ คุณสามารถมีโค้ดจำนวนมาก แต่เรียกใช้เฉพาะฟังก์ชันที่คุณต้องการเท่านั้น สำหรับวิธีแก้ปัญหาง่ายๆ คุณสามารถสร้างส่วนทั้งหมดของสคริปต์ที่คุณไม่ต้องการเรียกใช้ฟังก์ชัน ดังนั้นคุณต้องเพิ่ม: `unused() {` ก่อนและ `}` หลัง
ar flag
โปรด[แก้ไขคำถามของคุณ](https://askubuntu.com/posts/1394155/edit) และเพิ่มวิธีที่คุณเรียกสคริปต์ ตัวอย่างเช่น โดยการดับเบิลคลิก หรือโดย `./scriptname` หรือโดย `bash scriptname` หรือด้วยวิธีอื่น รวมถึงสคริปต์สั้น ๆ ฉันไม่สามารถสร้างปัญหานี้ซ้ำด้วยสคริปต์ 4 บรรทัด: `#!/bin/bash` âµ `echo first line` âµ `exit` âµ `echo second line` âµ เป็นต้น
terdon avatar
cn flag
@ user68186 ฉันคิดว่า OP กำลังพูดถึงการมีบรรทัดที่ผิดรูปแบบหลังจาก `exit` ดังนั้นสคริปต์ของคุณจะไม่สร้างซ้ำ แต่ฉันก็ไม่สามารถสร้างซ้ำด้วยบรรทัดที่ผิดรูปแบบได้เช่นกัน Bash อ่านสคริปต์ทีละบรรทัด ดังนั้นจึงไม่ควรบ่นเกี่ยวกับบรรทัดที่ไม่ดีหลังจากการโทรออก
ar flag
@terdon ฉันเห็นด้วย สิ่งที่ตามมาหลังจาก `exit` ผิดรูปแบบหรือไม่ ไม่ควรดำเนินการเลย ฉันใช้ `exit` ใน bash ตลอดเวลา โดยปกติจะใช้เงื่อนไข `if` โดยไม่มีปัญหาใดๆ ทั้งสิ้น
Terrance avatar
id flag
คุณสามารถเรียกใช้ `bash -x ./scriptfile.bsh` ได้ตลอดเวลาเพื่อแสดงบรรทัดที่เรียกใช้ในสคริปต์ของคุณ
waltinator avatar
it flag
วางสคริปต์ของคุณใน `https://shellcheck.net` ซึ่งเป็นตัวตรวจสอบไวยากรณ์เสมอ หรือติดตั้ง `shellcheck` ในเครื่อง ใช้ 'shellcheck' เป็นส่วนหนึ่งของกระบวนการพัฒนาของคุณ
Anton Wessel avatar
ws flag
ขอบคุณสำหรับคำตอบมากมายตอนนี้ฉันรู้ยูทิลิตี้ "shellcheck" แล้ว แต่ bash ไม่ควรมีปัญหาที่อธิบายไว้แม้ว่าจะไม่มีอินเทอร์เน็ตและไม่มี shellcheck แต่ onl

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา