ฉันต้องขออภัยล่วงหน้าหากนี่เป็นคำถามที่ซ้ำกัน ฉันพยายามค้นหา / ตรวจสอบก่อนถามที่นี่
ฉันรู้สึกสะดวกสบายกับการเขียนหนึ่ง liners เช่นนี้:
foocommand && foocommand2 && foocommand3
แนวคิดที่ว่าฉันต้องการเพียงคำสั่งที่ตามมาเท่านั้นที่จะทำงานหากคำสั่งก่อนหน้านี้ "สำเร็จ"
ฉันกำลังเขียนสคริปต์ที่ค่อนข้างยาวและหนึ่งบรรทัดนี้เป็นไปไม่ได้เพราะมันดูเหมือนว่าจะทำให้ผู้อื่นสับสนรหัสขนาดใหญ่
ฉันต้องการเว้นวรรคคำสั่งและเขียนความคิดเห็นไว้ในสคริปต์ ฉันจะทำสิ่งนี้และยังคงเทียบเท่า && อยู่ได้อย่างไร
||และ&&(ตรงกันข้ามกับ|หรือ&) เรียกว่าการลัดวงจร พฤติกรรมที่ใช้กับผู้ประกอบการหลังเรียกว่าการประเมินความกระตือรือร้น
a && b && cจะทำงานเฉพาะbถ้าaประสบความสำเร็จดังนั้น "เพียงทำงานcถ้าbประสบความสำเร็จ" และ "เพียงทำงานcถ้าaและbทั้งสองประสบความสำเร็จ" เป็นงบเทียบเท่า: bไม่สามารถประสบความสำเร็จเว้นแต่aประสบความสำเร็จ
a || b && cเป็นตัวอย่างเพิ่มเติม
true || false && echo hi ข้อมูลจำเพาะอ่านตัวดำเนินการ "&&" และ "||" จะต้องมีลำดับความสำคัญเท่ากันและจะถูกประเมินด้วยการเชื่อมโยงด้านซ้าย hi
&&ไม่ได้หมายความว่าคำสั่งที่ตามมาจะทำงานถ้าก่อนหน้านี้หนึ่งที่ประสบความสำเร็จ หมายความว่าคำสั่งจะทำงานหากผลลัพธ์โดยรวมของคำสั่งก่อนหน้าทั้งหมดในรายการคำสั่งนั้นสำเร็จ คุณอาจรู้เรื่องนี้ แต่ผู้อ่านในอนาคตอาจเข้าใจผิด