Linux'ta bir Shell uygulamasının ekran çıktısını (printf) nasıl gizleyebilirim?
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.
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.
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 &
Çıkışı gizlemek (ve bir dosyaya kaydetmek istemiyorsanız) için şunları kullanabilirsiniz:
Düzenlendi:
$ command &>/dev/null
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.