Linux'ta bir kabuk uygulamasının ekran çıktısını (printf) nasıl gizleyebilirim?
Linux'ta bir kabuk uygulamasının ekran çıktısını (printf) nasıl gizleyebilirim?
Yanıtlar:
Herhangi bir programın çıktısını görünmeyecek şekilde yeniden yönlendirebilirsiniz.
$ program > /dev/null
Bu standart çıktıyı yönlendirecektir - hala herhangi bir hata göreceksiniz
$ program &> /dev/null
Bu, hatalar da dahil olmak üzere tüm çıktıları yönlendirecektir.
wget
kullanabilirsiniz -q
yapmak seçenekleri o sessiz.
Komut satırında üç adet G / Ç aygıtı vardır.
standard in - 0
standard out - 1
standard error - 2
Standart çıkışı (varsayılan çıktıyı) bir dosyaya yönlendirmek (ve dosyanın üzerine yazmak),
command > file.log
File.log dosyasına eklemek için 2> s
command >> file.log
standart hatayı file.log dosyasına yönlendirmek için
command 2> file.log
ve eklemek
command 2>> file.log
Çıktıları tek bir akışta birleştirmek ve hepsini bir yere göndermek için
command > file.log 2>&1
Bu, 2'ye (stderr) 1'e (stdout) ve stdout'u file.log'a gönderir.
Standardın stdin kodunu bekleyen bir komuta yönlendirmenin de mümkün olduğuna dikkat edin.
command << file.txt
EDIT
Daha fazla ayrıntı için, Gelişmiş Bash Komut Dosyası Kılavuzu'na göz atın.
command > file.log 2>&1
çalıştığını açıklayabilir mi?
> file
ve diğeri 2>&1
. İlki, standardı bir dosyaya yönlendirir. İkincisi, 2. dosya tanımlayıcısını alır ve birincisine yönlendirir. Tersini yapabilir, standart çıktıyı kullanarak standart hataya >&2
yönlendirebilir ve ardından standart hatayı bir dosyaya yönlendirebilirsiniz 2> file
.
Çıktıyı gizlemek istiyorsanız (ve bir dosyaya kaydetmiyorsanız), şunları kullanabilirsiniz:
Düzenlendi:
$ command &> / dev / null
Mac OS X için (10.6 "Snow Leopard"):
Çıktı / hata dosya tanımlayıcısını kontrol ederek programın bildirmesine izin vermeden çıktıyı gizlemeniz gerekiyorsa, aşağıdakileri bir kabuk içinde kullanmayı deneyebilirsiniz:
stty flusho; command ;stty -flusho
ya da sadece terminalden girişi gizlemek istiyorsanız:
stty -echo; command ;stty echo
Daha fazla bilgi için stty (1) kılavuz sayfasına bakınız.
Bütün bildiğim Linux için Ubunutu (10.04 "Lucid") ve bazı "Debian / Arch" (aşağıda yorumlandı - tnx hendry) flusho
ayarının olmadığı (ve bu sayfada manüel olarak uygun başka bir şey göremiyorum). . echo
Ayar zaten Ubuntu üzerinde çalışır.