V normální situaci, když je prováděn výstup skriptu, je to standarně na obrazovku. Například když se zadá příkaz na vypsání řetězce, vypíše se implicitně na obrazovku terminálu. Přesměrujeme-li však výstup někam jinam pomocí znaku >
(přesměrování) a za to soubor, kam se výstup přesměruje. Příklad přesměrování uvádí následující ukázka:
xconsole$ echo "Hello wolrd" > foo.file
xconsole$ cat foo.file
Hello world
V ukázce je tedy vypsán řetězec "Hello world" a to do souboru do kterého byl přesměrován výstup. Následující příkaz cat vypíše obsah onoho souboru. Tento soubor nemusí existovat. S operátorem > je však jeden problém. Jeho použitím se totiž přepíše jakýkoliv soubor do kterého je výstup přesměrován. Proto existuje ještě jeden operátor >>, který výstup přesměruje na konec daného souboru. Podobně, jak když se v jazyce C otevírá soubor příkazem open s flagem O_APPEND.
Nakonec si ukážeme roury. Roury umožňují použít výstup programu jako vstup programu jiného. Roury se tvoří operátorem | (nejde o malé L). Tento znak se vytvoří na angl. klávesnici jako SHIFT-\. Následuje příklad roury:
xconsole$ cat /etc/passwd | grep xconsole > foo.file
xconsole$ cat foo.file
xconsole:x:1002:100:X_console,,,:/home/xconsole:/bin/bash
Zde jsme přečetli soubor /etc/passwd
a výstup jsme rourou předali jako vstup programu grep
, který má nalézt řetězec xconsole
. Konečný výstup je přesměrován a uložen do souboru foo.file
. Můžeme tedy vidět, že přesměrování a roury může být pro naše skripty užitečná vlastnost UNIXu.