Linux içinde işareti ve noktalı virgül arasındaki fark nedir Bash ?
Örneğin,
$ command1 && command2
vs
$ command1; command2
Linux içinde işareti ve noktalı virgül arasındaki fark nedir Bash ?
Örneğin,
$ command1 && command2
vs
$ command1; command2
Yanıtlar:
&&Operatör bir boolean VE operatörüdür: sol tarafı sıfırdan farklı bir çıkış durumu, operatör döner statü olduğunu döner ve sağ tarafını (kısa devre) değerlendirmek etmezse, aksi takdirde sağ tarafını değerlendirir ve çıkış durumu ile döner . Bu, genellikle command2yalnızca command1başarıyla çalıştırıldığında çalıştırıldığından emin olmak için kullanılır .
;Ne olursa olsun birinci başarılı olur olsun veya olmasın ikinci komutu çalıştırmak böylece kodu yalnızca, komutları ayırır.
&&ve işareti &, bash'daki tek bir ve işaretinden farklı mıdır?
&komutun arka planda çalıştırılmasına neden olur, yani evet. "Bunu arka planda çalıştır", "bu sonraki komutu yalnızca diğerinin başarılı olması durumunda çalıştır" ifadesinden çok farklıdır.
;İlk komut bitirmek için hala beklemek?
a;b"koş ave sonra koş " anlamına gelir b. a&&b"koş ave sonra byalnızca abaşarılı olursa çalıştır " anlamına gelir .
command1 && command2yürütür command2(ve sadece) halinde command1uygulama başarılı bir şekilde sona erer. Unix jargonunda bu, çıkış kodu / dönüş kodu sıfıra eşittir.
command1; command2sırayla çalıştırdıktan command2sonra yürütülür command1. Komutların başarılı olup olmadığı önemli değildir.
İlki, ANDkısa devre değerlendirmesini kullanan basit bir mantıktır , ikincisi basitçe iki komutu sınırlar.
Gerçekte olan şey, ilk program sıfırdan farklı bir çıkış kodu döndürdüğünde, bütün ANDolarak değerlendirilir FALSEve ikinci komut çalıştırılmaz. Daha sonra her ikisini de sırayla çalıştırır.