A shell komplex átirányítási funkciói

Találkoztunk már a be- és kimenetek átirányításának lehetőségével. Az ott tárgyaltakon kívül más átirányítási lehetőségeket is biztosít a shell. Az eddig ismert átirányítási mechanizmusok megadhatóak úgy is, hogy az átirányítás jele elé egy számot írunk, például 2> file. Ez a szám az úgynevezett állományleíró (file descriptor); amely egyértelműen azonosítja a UNIX számára a megnyitott állományokat, illetve a bemeneteket és a kimeneteket. A szokásos kiosztás szerint 0 a bemeneti (standard input), 1 a kimeneti (standard output), míg 2 a hiba (standard error) csatorna leírója, a megnyitott egyéb állományok ennél nagyobb számokat kapnak, de ezt példáinkban nem használjuk ki. A fenti példa tehát azt jelenti, hogy a hiba csatornát irányítottuk át a file állományba.

Egy állományra illetve be/kimeneti csatornára az állományleíró segítségével is hivatkozhatunk, ebben az esetben az állományleírót egy & karakter kell hogy megelőzze, például &1 a standard outputra hivatkozik. Az alábbi példában a sort program standard error csatornáját a standard outputra küldjük, amit átirányítunk a valami állományba. Amikor rossz opciót adunk meg, látható, hogy a hibacsatorna tartalma is a valami állományba kerül: (az átirányítás nélkül a terminálra kerülne)

$ sort -X semmi >valami 2>&1

$ cat valami

sort: invalid use of command line options

$

 

Tartalomjegyzék