GNU/Linux >> Znalost Linux >  >> Linux

Jak mohu skrýt výstup shellové aplikace v Linuxu?

Řešení 1:

Výstup libovolného programu můžete přesměrovat tak, aby nebyl vidět.

$ program > /dev/null

Tím se přesměruje standardní výstup – stále uvidíte všechny chyby

$ program &> /dev/null

Tím se přesměruje veškerý výstup, včetně chyb.

Řešení 2:

Na příkazovém řádku jsou k dispozici tři I/O zařízení.

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

Chcete-li přesměrovat standardní výstup (výchozí výstup) do souboru (a přepsat soubor), použijte

 command > file.log

Pro připojení k file.log použijte dva > s

 command >> file.log

Pro přesměrování standardní chyby do souboru file.log použijte

 command 2> file.log

A připojit

 command 2>> file.log

Sloučit výstupy do jednoho streamu a poslat je všechny na jedno místo

 command > file.log 2>&1

Tím se odešle 2 (standardní chyba) na 1 (standardní výstup) a standardní výstup se odešle do file.log

Všimněte si, že je také možné přesměrovat standardní vstup do příkazu, který očekává standardní vstup

 command << file.txt


Další podrobnosti naleznete v příručce Advanced Bash Scripting Guide.

Řešení 3:

Skrýt standardní výstup:

./command >/dev/null

Skrýt standardní výstup a standardní chybu:

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

Skryjte standardní výstup a standardní chybu a uvolněte terminál (spusťte příkaz na pozadí):

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

Řešení 4:

Pokud chcete výstup pouze skrýt (a neukládat jej do souboru), můžete použít:

Upraveno:

$ příkaz &> /dev/null

Řešení 5:

Pro Mac OS X v10.6 (Snow Leopard):

Pokud potřebujete skrýt výstup, aniž byste to dali programu vědět kontrolou deskriptoru výstupního/chybového souboru, můžete zkusit použít následující v shellu:

stty flusho; command ;stty -flusho

nebo pokud chcete mimochodem skrýt vstup z terminálu:

stty  -echo; command ;stty  echo

Více informací naleznete na manuálové stránce stty(1).

Pro Linux vím jen to, že Ubuntu 10.04 (Lucid Lynx) a některé Debian/Arch Linux (komentováno níže – díky, hendry) nemají flusho nastavení (a nic jiného vhodného v manuálové stránce nevidím). echo nastavení stejně funguje na Ubuntu.


Linux
  1. Jak přiřadit výstup příkazu proměnné shellu?

  2. Jak mohu randomizovat řádky v souboru pomocí standardních nástrojů v Red Hat Linuxu?

  3. Jak převést výstup shellu Linuxu do HTML?

  1. Jak najít aplikaci pro typ mime v systému Linux?

  2. Jak mohu provést rozdělení s proměnnými v prostředí Linuxu?

  3. Jak mohu trvale skrýt panel nástrojů v Emacsu?

  1. Jak změnit výchozí prostředí v Linuxu

  2. Jak změnit výchozí shell v Linuxu

  3. Jak mohu získat stav klávesnice v Linuxu?