it-swarm-tr.com

Bash betiğinde / dev / null çıktısı ne yapar?

Çoğu zaman if ifadelerinde bu sözdizimini kullanan küçük bash scriptlerine rastlarım:

some command > /dev/null 2>&1

/dev/null öğesine böyle çıkmanın amacı nedir ve 2>&1 ne anlama geliyor?

Her zaman çalışıyor gibi görünüyor ama ne yaptığını bilmek istiyorum.

130
javanix

>/dev/null komut standart çıktısını, kendisine yazılan bilgiyi atan özel bir aygıt olan boş aygıta yönlendirir.

2>&1, standart hata akışını standart çıkış akışına yönlendirir (stderr = 2, stdout = 1). Bunun standart hata akışını aldığını ve o andaki standart çıktıyla aynı konuma işaret ettiğini unutmayın. >/some/where 2>&1 siparişinin nedeni budur, çünkü birinin ilk önce bir yere stdout göstermesi ve daha sonra stderr'i aynı yere işaret etmesi istenir Sonunda her iki akışı birleştirmek için.

Uygulamada, komuttan (stdout ve stderr) herhangi bir çıkışın görüntülenmesini önler. Komut çıkışını umursamadığınızda kullanılır.

174
João Pinto

STDIN, 0, STDOUT, 1, ve STDERR, 2 ile temsil edilir.

/ dev/null bittir: İhtiyacınız olmayan hiçbir şeyi bırakmadığınız yer.


Böylece, STDOUT bit-kovaya (çöp kutusuna) yönlendirilir ve STDERR STDOUT'un bulunduğu yere yönlendirilir: bit-kova.


Bunu da yapabilirsiniz:

>/dev/null 2>/dev/null
67
Sid