Bass içinde yanlışı alt kabuk olmadan çoklu komutlarla değerlendirme


1

Bash, mantıksal operatörleri değerlendirir ve & amp; her zaman önceliklidir. Yani örneğin:

false || echo 1 && echo 2
1
2

ve

true || echo 1 && echo 2
2

Tamam. Öyleyse çıktının böyle olmasını istiyorum diyelim:

false || (echo 1 && echo 2)

Ancak bir deniz kabuğu çağırmadan.

Aklıma gelen tek çözüm şudur:

false || if true; then echo 1; echo 2; fi
1
2

Alt-kabuk çağırmak zorunda kalmadan komutları birlikte gruplamak için C'deki parantezlere benzer daha temiz bir yol var mı?


Geçmişe bakıldığında, bu muhtemelen yığın akışında kaydedilmiş olmalıydı.
Zhro

Hayır, burada sormak da sorun değil.
slhck

Yanıtlar:


2
false || { echo 1 && echo 2; }

Bu doğru gibi görünüyor. Bunu yaptığımda hiçbir paralel işlem alt kabuğu oluşturulmadı: { sleep 0.2s; echo 1; } || { echo 1 && echo 2; }
Zhro
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.