navratove kody
    Alexandr Malusek 
    malusek na hroch.ujf.cas.cz
       
    Čtvrtek Březen 19 13:03:48 CET 1998
    
    
  
mkop5230 na ss1000.ms.mff.cuni.cz (Milan Kopacka) writes:
>>>>  2) Pokud napisu prirazeni Z=`neco`, tak jak udelat aby v Z, bylo to co se
>>>> posila na standartni chybovy vystup.
>>> 
>>>    Z=`neco 2>&1 >/dev/null`
>>No to snad ne...
> 
> Ale ano :)
> 
> 2>&1 znamena - presmeruj 2 tam, co ted ukazuje 1 , neznamena to
> presmeruj 2 tam co kdy bude ukazovat 1..
Nekdo proste neuveri, dokud se sam nepresvedci. Snadno se to da
overit takto:
$ cat s1
#!/bin/sh
echo stdout                # Vystup do stdout (file descriptor 1)
echo stderr 1>&2           # Vystup do stderr (file descriptor 2)
$ s1                       # stdout i stderr presmerovany na tty
stdout
stderr
$ s1 2>/dev/null           # stderr presmerovan do /dev/null
stdout
$ s1 1>/dev/null           # stdout presmerovan do /dev/null
stderr                     # 1>/dev/null je ekvivalentni >/dev/null
$ Z=`s1 2>&1 >/dev/null`   # stderr do promenne, stdout do /dev/null
$ echo $Z
stderr
Doporucuji kazdemu, aby si s tim pohral. Zajimave je napr. prohozeni
stdout a stderr:
$ s1 10>&1 1>&2 2>&10
stdout
stderr
$ (s1 10>&1 1>&2 2>&10) 2>/dev/null
stderr
$ (s1 10>&1 1>&2 2>&10) 1>/dev/null
stdout
Snad to snizi pocty tech, kteri se tomu divi. ;-)
--
A. Malusek  (malusek na ujf.cas.cz)
UJF AV CR
    
    
Další informace o konferenci Linux