perintah chain Fish melalui `&&` atau `||`

94

Di Bash / ZSH dan kerang lainnya, saya terbiasa menggunakan &&dan ||.

Apakah ada padanan dalam Ikan?

Albert
sumber
Sintaks ini sekarang didukung pada cabang utama dan akan dirilis pada Fish 3.0 ( github.com/fish-shell/fish-shell/commit/… )
Warlike Chimpanzee

Jawaban:

13

Operator logis yang biasa Anda gunakan, didukung sejak fish 3.0.0, dirilis pada 2018-12-28.

Dari catatan rilis v3 :

  • fish sekarang mendukung &&(suka and), ||(suka or), dan !(suka not), untuk migrasi yang lebih baik dari kerang yang sesuai dengan POSIX ( # 4620 ).
Dennis
sumber
132

Fish tidak memiliki sintaks khusus untuk logika AND ( &&) atau logika OR ( ||).

Sebagai gantinya, Anda dapat menggunakan perintah anddan or, yang memverifikasi status keluar perintah sebelumnya dan bertindak sesuai:

command1
and command2
command1
or command2

Selanjutnya - sama seperti di bash - Anda dapat menggunakan titik koma ;untuk mengeksekusi dua perintah satu demi satu:

command1 ; command2

Ini memungkinkan penggunaan sintaks yang lebih akrab:

command1 ;and command2
command1 ;or command2

Lihat http://fishshell.com/docs/current/tutorial.html#tut_combiners

Dennis
sumber
4
Ada masalah github terbuka untuk menambahkan dukungan untuk sintaks ini: && tidak berfungsi · Masalah # 150 · cangkang ikan / cangkang ikan
aboy021
20
This allows using a more familiar syntax:sangat subyektif
Petr Peller
1
;andkurang dapat dibaca daripada &&sebagai tanda titik koma operasi logis terpisah. Ini menggelegar secara visual.
Simpanse suka berperang
@ Elliott saya setuju, tetapi Fish tidak memberi Anda pilihan.
Dennis
1
perlu dicatat bahwa dalam cangkang ikan dan bourne, operator AND dan OR memiliki urutan yang sama, tidak seperti bahasa berbasis C: unix.stackexchange.com/a/88851/50703
balupton