it-swarm.asia

Linux'ta bir Shell uygulamasının çıktısını nasıl gizleyebilirim?

Linux'ta bir Shell uygulamasının ekran çıktısını (printf) nasıl gizleyebilirim?

47
Jader Dias

Herhangi bir programın çıktısını, görünmeyecek şekilde yönlendirebilirsiniz.

$ program > /dev/null

Bu, standart çıktıyı yeniden yönlendirir - yine de hatalar göreceksiniz

$ program &> /dev/null

Bu, hatalar dahil tüm çıktıları yeniden yönlendirir.

72
theotherreceive

Komut satırında üç adet G/Ç aygıtı vardır.

 standard input  - 0
 standard output - 1
 standard error  - 2

Standart çıktıyı (varsayılan çıktı) bir dosyaya yeniden yönlendirmek (ve dosyanın üzerine yazmak) için şunu kullanın:

 command > file.log

File.log dosyasına eklemek için iki >s

 command >> file.log

Standart hatayı file.log dosyasına yeniden yönlendirmek için şunu kullanın:

 command 2> file.log

Ve eklemek için

 command 2>> file.log

Çıkışları tek bir akışta birleştirmek ve hepsini tek bir yere göndermek için

 command > file.log 2>&1

Bu, 1'e (standart çıktı) 2 (standart hata) gönderir ve file.log dosyasına standart çıktı gönderir

Standart girişi standart girişi bekleyen bir komuta yönlendirmenin de mümkün olduğuna dikkat edin

 command << file.txt


Daha fazla ayrıntı için Advanced Bash Scripting Guide bölümüne bakın.

30
Matt Simmons

Standart çıktıyı gizle:

./command >/dev/null

Standart çıktıyı ve standart hatayı gizle:

./command >/dev/null 2>&1

Standart çıktıyı ve standart hata ve serbest bırakma terminalini gizle (arka planda komutu çalıştırın):

./command >/dev/null 2>&1 &
12
gummy

Çıkışı gizlemek (ve bir dosyaya kaydetmek istemiyorsanız) için şunları kullanabilirsiniz:

Düzenlendi:

$ command &>/dev/null

3
Lucho

Mac OS Xv10.6 (Kar Leoparı) için:

Çıktı/hata dosyası tanımlayıcısını kontrol ederek programın bunu bildirmesine izin vermeden çıktıyı gizlemeniz gerekiyorsa, bir Kabuk'ta aşağıdakileri kullanmayı deneyebilirsiniz:

stty flusho; command ;stty -flusho

veya sadece bu arada girişi terminalden gizlemek istiyorsanız:

stty  -echo; command ;stty  echo

Daha fazla bilgi için stty (1) kılavuz sayfasına bakınız.

Linux için bildiğim tek şey buntu 10.04 (Lucid Lynx) ve bazı Debian/Arch Linux (aşağıda yorumlandı - teşekkürler, hendry) flusho ayarına sahip değil (ve ben kılavuz sayfasında uygun başka bir şey göremiyoruz). echo ayarı yine de Ubuntu'da çalışır.

2
vike