Eskiden bir listedeki satırları bölmenin uygun yolunun şu olduğuna inanırdım
command1 && \
command2
Öyle olmadığı ortaya çıktı, birinin '``a ihtiyacı yok
$ [ $(id -u) -eq 1000 ] &&
> echo yes
yes
Aynı şekilde |
boruları ile de çalışır.
Bash man sayfasının pipelining ve listeler ile ilgili bölümleri bu konuda herhangi bir ışık tutmadı. Bu nedenle sorum şu: uzun satırları kesmek için `` doğru kullanım nedir?
İfade devam etmeden doğru olacaksa, \
kullanmanız gerekir. Bu nedenle, bir komutu &&
ile sonlandıramayacağınız için, aşağıdaki ters eğik çizgi olmadan çalışır:
echo 1 &&
echo 2
Burada ters eğik çizgiye ihtiyacınız var:
echo 1 2 3 \
4
veya
echo 1 \
&& echo 2
Aksi takdirde, bash ilk satırı işledikten hemen sonra bir sonrakini beklemeden komutu çalıştırır.
Büyük bir BT şirketindeki profesyonel hayatım boyunca karşılaştığım komut dosyası yazma stili yönergelerinden biri, bir kabuk kodunda satır başına 80 karakterden fazla kullanmamamı ve satırı kırdıktan sonra girinti yapmamı zorunlu kılıyordu. Ayrıca, bir boru veya && veya ||'den önce satırı kesmek zorundaydım. Mesela :
command1 \
&& command2 \
|| command3 \
| command4
Amaç net bir okunabilirliğe sahip olmaktı.