วิธีการคอมเม้นท์คำสั่งหลายบรรทัดในเชลล์สคริปต์


19

เมื่อเรียกใช้คำสั่ง switch-heavy เป็นเวลานานจะเป็นการดีหากเขียนคำสั่งลงในเชลล์สคริปต์ มีวิธีที่ง่ายในการแสดงความคิดเห็นบรรทัดในสคริปต์ดังกล่าวหรือไม่ ฉันได้ลองวิธีต่อไปนี้แล้ว แต่ไม่ได้ผล

# the \ is also commented out, resulting in "command" and "--good-switch".
command \
  #--bad-switch \
  --good-switch \

# seems to send an extra argument to the command
command \
  \ #--bad-switch \
  --good-switch
shell 

1
อันที่สองทำให้เกิดช่องว่างที่จะส่งเป็นอาร์กิวเมนต์ ( \ หนีอักขระต่อไปซึ่ง "ซ่อน" บรรทัดใหม่ แต่ทำให้ช่องว่างที่สำคัญ)
geekosaur

คำตอบ:


14

นี่อาจเป็นตัวเลือก: เก็บคำสั่งและ args ในอาร์เรย์จากนั้นเรียกใช้งานหลังจากนั้น

# build the command
cmd=( ls
        -F
      # -a   # comment out this option temporarily
        -l
    )
# $cmd is now an array with 3 elements

# execute it
"${cmd[@]}"

นี่คือbash- เพียง…
Socob

3

ฉันมักจะย้ายคนที่มีความคิดเห็นเสมอหลังจากคำสั่ง

command \
  --good-switch
# --bad-switch          with explanation here, if needed

0

command #--bad-switch --good-switchปัญหาก็คือทับจะถูกลบออกก่อนที่จะสายจะแยกกันเพื่อให้คำสั่งแรกจะแยกกันเช่นถ้าคุณต้องการเขียน หากคุณมีลำดับของคำสั่งที่ยาวมากคุณสามารถเขียนบล็อกความคิดเห็นทีละบรรทัดด้านบนหรือด้านล่างอธิบายแต่ละอันหรือคุณสามารถจัดเก็บพารามิเตอร์ไว้ในตัวแปรได้ ตัวอักษรพิเศษ)


1
ดูเหมือนจะไม่เป็นเช่นนั้น --good-switchถูกตีความว่าเป็นคำสั่ง

0

ดูคำตอบโดยดิจิตอลรอสส์

ดูเพิ่มเติมคำถามที่ฉันเพิ่งโพสต์, ทุบตีคำสั่งหลายคู่สายที่มีความคิดเห็นตามตัวละครต่อเนื่อง

นี่จะเป็นคุณสมบัติที่มีประโยชน์ มันน่าเสียดายที่มันไม่ได้รับการสนับสนุนมาตรฐาน


0

ความคิดเห็นนั้นเป็นการตัดสายโซ่ของเส้นที่มีเส้นกั้นดังนั้นวิธีที่ง่ายที่สุดคือการย้ายบรรทัดที่มีความคิดเห็นในตอนท้ายของรายการ

command \
  --good-switch \
  # --bad-switch \

หากคุณไม่ต้องการเปลี่ยนคำสั่งซื้อคุณสามารถใช้:คำสั่ง (ยูทิลิตี้โคลอนซึ่งไม่ทำอะไรเลย) เพื่อให้บรรทัดที่เชื่อมต่อยังคงเหมือนเดิม:

command \
  `: --bad-switch `\
  --good-switch \

ฉันทดสอบกับสิ่งนี้:

function command { 
  echo "num args:" $#;
}
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.