Benim bash test
durumunun 0
:BASH: [] (test) uyumsuz davranır
$ test -n && echo true || echo false
-> true
ile çıkması için bir tavrı vardır.
$ test -n "" && echo true || echo false
-> false
Bu, herhangi bir argüman almadığı zaman sıfırdan farklı olduğu anlamına gelir.
-z
durumu düzgün çalışıyor:
$ test -z && echo true || echo false
-> true
$ test -z "" && echo true || echo false
-> true
Bu beklenen davranış mı?
İyi soru. Ayrıca hem 'test -n' hem de 'test -z' (argümanlar olmadan) hem de başarılı olur. –
'&&' ve '||' ile dikkatlice olun! Bu kodu deneyin: 'touch'a dokunun ~/x && touch/x || echo fail' - 'touch/x' başarısız olursa, 'fail' basılacaktır! – uzsolt