Saya minta maaf sebelumnya jika ini adalah pertanyaan rangkap. Saya memang berusaha mencari / memeriksa sebelum bertanya di sini.
Saya nyaman menulis satu kalimat seperti ini:
foocommand && foocommand2 && foocommand3
Gagasannya adalah bahwa saya hanya ingin menjalankan perintah selanjutnya jika yang sebelumnya "berhasil".
Saya sedang menulis skrip yang agak panjang dan one-liner ini tidak layak karena terlihat seperti blok kode yang membingungkan bagi semua orang.
Saya ingin menghapus perintah dan menulis komentar di antara mereka dalam skrip. Bagaimana saya bisa melakukan ini dan masih memiliki yang setara dengan && di sana?
||
dan &&
(sebagai lawan |
atau &
) disebut hubungan pendek. Perilaku yang digunakan dengan operator terakhir disebut evaluasi bersemangat.
a && b && c
hanya akan berjalan b
jika a
berhasil, jadi "itu hanya berjalan c
jika b
berhasil" dan "itu hanya berjalan c
jika a
dan b
keduanya berhasil" adalah pernyataan yang setara: b
tidak dapat berhasil kecuali a
berhasil.
a || b && c
lebih ilustratif.
true || false && echo hi
akan ditampilkan hi
. Spesifikasi berbunyi, Operator "&&" dan "||" harus memiliki prioritas yang sama dan harus dievaluasi dengan asosiasi kiri.
&&
tidak berarti perintah berikutnya akan berjalan jika sebelumnya satu berhasil. Ini berarti perintah akan berjalan jika hasil kolektif dari semua perintah sebelumnya dalam daftar perintah berhasil. Anda mungkin tahu ini, tetapi pembaca di masa depan mungkin salah paham.