Apa perbedaan antara ampersand dan titik koma di Linux Bash ?
Sebagai contoh,
$ command1 && command2
vs.
$ command1; command2
Apa perbedaan antara ampersand dan titik koma di Linux Bash ?
Sebagai contoh,
$ command1 && command2
vs.
$ command1; command2
Jawaban:
The &&operator adalah boolean operator AND: jika sisi kiri mengembalikan status non-nol keluar, operator pengembalian yang status dan tidak mengevaluasi sisi kanan (pendek-sirkuit), jika tidak mengevaluasi sisi kanan dan mengembalikan status keluar nya . Ini biasanya digunakan untuk memastikan bahwa command2hanya dijalankan jika command1berhasil dijalankan.
The ;Token hanya memisahkan perintah, sehingga akan menjalankan perintah kedua terlepas dari apakah atau tidak yang pertama berhasil.
&&berbeda dari satu ampersand &di bash?
&menyebabkan perintah dijalankan di latar belakang, jadi ya. "Jalankan ini di latar belakang" sangat berbeda dengan "jalankan perintah berikut ini hanya jika yang lain ini berhasil."
;masih menunggu perintah pertama selesai?
a;bartinya "lari alalu lari b." a&&bartinya "lari a, lalu jalankan bhanya jika aberhasil".
command1 && command2dijalankan command2jika (dan hanya jika) command1eksekusi berakhir dengan sukses. Dalam jargon Unix, itu berarti kode keluar / kode pengembalian sama dengan nol.
command1; command2dieksekusi command2setelah dieksekusi command1, secara berurutan. Tidak peduli apakah perintah itu berhasil atau tidak.
Yang pertama adalah logika sederhana yang ANDmenggunakan evaluasi hubung singkat, yang terakhir hanya membatasi dua perintah.
Apa yang terjadi secara nyata adalah ketika program pertama mengembalikan kode keluar bukan nol, keseluruhan ANDdievaluasi FALSEdan perintah kedua tidak akan dijalankan. Kemudian hanya mengeksekusi keduanya secara berurutan.