ฉันเรียนรู้วิธีการเขียนโค้ดเป็นC
ภาษาแรกและการใช้งาน
if ( code )
then
code
fi
ทำให้มันยากสำหรับฉันที่จะอ่านโค้ดของฉัน (อย่าถามว่าทำไม) มีสิ่งทดแทนthen
หรือไม่?
บางสิ่งเช่นนี้
if ( code ) {
code
}
fi
ฉันเรียนรู้วิธีการเขียนโค้ดเป็นC
ภาษาแรกและการใช้งาน
if ( code )
then
code
fi
ทำให้มันยากสำหรับฉันที่จะอ่านโค้ดของฉัน (อย่าถามว่าทำไม) มีสิ่งทดแทนthen
หรือไม่?
บางสิ่งเช่นนี้
if ( code ) {
code
}
fi
คำตอบ:
ไม่มีสิ่งใดทดแทน แต่คุณสามารถใช้ทั้งคู่ได้หากคุณต้องการเครื่องมือจัดฟัน:
if true ; then {
something
} fi
ที่ใช้กลุ่มคำสั่งที่ไม่จำเป็นซึ่งมีการค้ำยันอย่างชัดเจนเป็นเนื้อความของthen
บล็อก คำสั่งใด ๆ ในการจัดฟันจะถูกดำเนินการในเปลือกปัจจุบันเมื่อการthen
ทำงานเหมือนกับว่าการจัดฟันไม่ได้มี
ฉันจะไม่แนะนำสไตล์นี้โดยทั่วไปหรือสำหรับรหัสที่คนอื่นจะต้องอ่าน แต่มันจะให้คุณจัดฟันที่คุณต้องการและมันจะทำเคล็ดลับถ้าคุณกำลังใช้โปรแกรมแก้ไขที่ต้องใช้บล็อกที่มีวงเล็บหรือ อะไรแบบนั้น.
{ if { [[ a == aa ]];};then { echo yes;};else { echo no;}; fi;}
- โดยทั่วไปเมื่อคุณใช้bash
เพียงพอ ไวยากรณ์มาตรฐานจะคุ้นเคยพอดังนั้นมันจึงไม่เป็นปัญหามากนัก
ดูเหมือนว่าคุณจะมองหาเปลือก C ( csh
, tcsh
ฯลฯ ... ) โปรดทราบว่าผู้เชี่ยวชาญแนะนำให้กับมันสำหรับการเขียนโปรแกรม
ฉันไม่แน่ใจว่าส่วนที่คุณคิดว่าน่าสนใจหรือไม่นั้นเป็นความจริงที่then
อยู่ในบรรทัดต่อไปนี้หรือไม่? หากเป็นเช่นนั้นให้พิจารณาใช้รูปแบบต่อไปนี้:
if condition; then
stuff
fi
ฉันต้องยอมรับว่าชื่อคำสั่งการสะกดถอยหลังเช่นfi
สำหรับif
และesac
สำหรับcase
( แต่ไม่ใช่elihw
สำหรับwhile
!) เป็นชนิดของการเล่นโวหาร แต่นั่นเป็นบอร์นเชลล์มาตรฐานซึ่งเป็นไวยากรณ์เชลล์แบบพกพาที่สุดที่คุณสามารถใช้ได้
then
ไม่สวยก็เพียงว่าบรรณาธิการของฉันจะเน้นที่สอดคล้องกัน{}
คู่และที่มีประโยชน์สำหรับเมื่อฉันมีการเรียงลำดับของความผิดพลาดบางอย่างแล้วเพราะผมสามารถมองเห็นทั้งหมดของฉันif
งบและดูว่าสิ่งที่ผิดพลาด .
vi
ของ%
คำสั่งซึ่งกระโดดไปรั้งที่ตรงกัน / วงเล็บ / วงเล็บ ฉันเห็นอกเห็นใจ ฉันคิดถึงvi
's %
คำสั่งเมื่อการเขียนโปรแกรมในหลาม
บางทีนี่อาจจะง่ายขึ้นในสายตา:
[ condition ] && {
# statement 1
# statment 2
# ...
}
นอกเหนือจากนั้นเพียงรับใช้มัน ใช้สำนวนภาษา
ต่อไปนี้อยู่ใกล้กับที่นั่น และแปลก
: if; { code; } && {
code
}
โดยส่วนตัวฉันไม่ชอบ ...
if true; then
more;fi
... สร้างตัวเอง ผมชอบมันเมื่อคำควบคุมนำไปสู่ มันดูแปลกสำหรับฉันเสมอที่...;then
แบบฟอร์มที่ปรากฏขึ้นมาเลย
if this && that
then do these things too
else i will probably get upset
fi
มันเกือบจะตรงกันข้ามกับคำขอของคุณทั้งหมด แต่เป็นอีกวิธีหนึ่งที่จะทำ นอกจากนี้คุณยังสามารถเปลี่ยนเส้นทางที่ต้องการไปยังfi
บรรทัดได้ตามต้องการและจะนำไปใช้กับบล็อกทั้งหมด
if(...) {
นั่นคือการเปิดวงเล็บปีกกาในบรรทัดเดียวกับif
ภาษา C-like
if
คำสั่งแม้ว่าในบรรทัดถัดไป
;
delim ในกรณีนั้น นั่นเป็นเหตุผลที่พวกเขาทำ
:
เชลล์บิวด์อินแบบนี้เพียงเพื่อให้บรรทัดของโค้ดสามารถอยู่ใกล้กับไวยากรณ์ C มากขึ้นไม่ควรสนับสนุนในลักษณะใด ๆ
นี่คือวิธี:
[ "$var" = "find" ] && echo "found"
เทียบเท่ากับ:
if [ "$var" = "find" ]; then
echo "found"
fi
{...}
ไปรอบ ๆecho "found"
แล้วคุณจะมุ่งหน้าไปในทิศทางที่ถูกต้อง
ฉันมักจะใช้:
if (code); then
code;
fi
อาจไม่ใช่สิ่งที่คุณต้องการอย่างแน่นอน แต่มันก็เป็นอะไรที่มากกว่า