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.