GNU/Linux >> Belajar Linux >  >> Linux

Kelanjutan Baris Bash Setelah &&Dan || Didokumentasikan?

Saya telah sering melihat konstruksi ini dalam skrip dan menggunakannya sendiri, tetapi saya merasa terganggu karena sepertinya saya tidak dapat menemukannya di dokumentasi.

Contoh:

[ -f file1 ] &&
[ -f file2 ] &&
echo "Both files exist." ||
echo "One or the other file doesn't exist."

Ini juga dapat dilakukan dengan garis miring terbalik sebelum baris baru, seperti yang disebutkan dalam man bash :

If a <newline> pair appears,  and  the  backslash  is  not
itself  quoted,  the <newline> is treated as a line continuation (that
is, it is removed from the input stream and effectively ignored).

Contoh:

[ -f file1 ] && 
[ -f file2 ] && 
echo "Both files exist." || 
echo "One or the other file doesn't exist."

...tapi ini sepertinya tidak perlu. Versi pertama di atas berfungsi bahkan tanpa garis miring terbalik.

Di mana saya dapat menemukan ini di man bash ? (Juga, apakah ini bash spesifik atau sesuai dengan POSIX?)

Jawaban yang Diterima:

Baris baru diabaikan dalam beberapa konteks di mana ada perintah yang tidak dihentikan. Konteks ini termasuk setelah operator kontrol (&& , || , | , & , ; , ;; , tapi bukan ! ).

Saya tidak melihat ini didokumentasikan di manual bash.

Di POSIX, ini ditentukan melalui aturan tata bahasa. Di mana pun aturan memiliki linebreak , Anda dapat memiliki nol atau lebih jeda baris.


Linux
  1. Perbedaan Antara ' Dan ” Di Command Line (bash)??

  2. String Hilang Setelah Menggabungkan Dua Atau Lebih String Variabel Di Bash?

  3. Menulis Komentar dalam Skrip Bash:Komentar Satu Baris, Sebaris, dan Multi-baris

  1. Contoh Bash For Loop dan While Loop

  2. Di Bash, bagaimana cara menambahkan string setelah setiap baris dalam file?

  3. Sejarah Bash tanpa nomor baris

  1. Shell Script, baca di baris yang sama setelah mengulang pesan

  2. Bash - Perintah tanggal dan spasi

  3. Jalankan skrip bash setelah login