2013-05-22 23 views

cevap

5

Basitçe yeni bir kabuk başlatın:

bash >/dev/null 2>&1 

Şimdi komutları yazabileceğiniz kör :) o mod türünü bırakmak istiyorsanız: exit

Ama yazarak komutları kör normalde olmaz ne istemek.

command1 foo 
command2 bar 

ve kullanarak çalıştırmak daha: Böylece bunun da komutları, script.sh gibi bir metin dosyası oluşturmak yerleştirmek için öneririm

bash script.sh >/dev/null 2>&1 

o senaryodaki tüm komutların çıkışına yönlendirilecektir/dev/null komut dosyası oluşturma veya diğer pratik amaçlar için,

+0

bash? bu bir komut mu? – TheForbidden

+1

evet tabiki. Yeni bir 'bash 'kabuğuna başlayacak. – hek2mgl

+0

bu var: [1] 13407 bash: 2: Böyle bir dosya ya da dizin 1: [1] + Exit 127 bash 2>/dev/null – TheForbidden

0

, komutu gruplamak güzel bir çözümdür. kabuk olarak, sizin istemi artık hex2mgl belirttiği gibi bu interaktif kabuk yaparsak

exec > /dev/null 2>&1 

, hatta görmezsiniz: Bu bir komut olmadan özellikle Any redirections (see Redirections) associated with a compound command apply to all commands within that compound command unless explicitly overridden.

3

Kullanım exec diyor http://www.gnu.org/software/bash/manual/html_node/Compound-Commands.html kontrol standart hataya yazdırır. Komutların etkileşimli olarak çalıştırdığı tüm çıktıları görmezden gelmek çok mantıklı olmadığı için, bunun bir betik için tasarlandığını farz ediyorum :)

+0

terminal engellendi – TheForbidden

+0

Engellendi; Tüm çıktılar (istendiğiniz her iki standart çıktı ve standart hata) talep edildiği gibi '/ dev/null' olarak yeniden yönlendirildi. – chepner

+0

ve yalnızca hata çıktısını yeniden yönlendirmek istiyorsam? – TheForbidden

İlgili konular