promenne a slozene zavorky v shellu

Martin Mačok martin.macok na underground.cz
Pátek Květen 3 18:25:35 CEST 2002


On Fri, May 03, 2002 at 06:08:08PM +0200, Jirka Kosina wrote:
> Shell se spousti na ( ), to co je uvnitr { } by se prave melo
> provadet v aktualnim shellu.

To IMHO ale neni presne to, co je mysleno tou manualovou strankou. ()
nebo {} znamena, ze chcete dat prikazy do skupiny (napr. kvuli
spolecne redirekci vstupu/vystupu). () rikate, ze explicitne chcete,
aby na tu skupinu prikazu byl vyclenen subshell (napr. proto, ze
urcite chcete, aby zmeny environmentu zevnitr neovlivnily zbytek
programu). {} rikate, ze kvuli teto skupine subshell spoustet nema.
Nezarucuje se ale, ze to ten shell presto neudela, napr. z nejakych
jinych duvodu:

Pokud pouzijete rouru, v konvencnim shellu se proste minimalne jedna
strana te roury musi pustit v jinem subprocesu (*), protoze oba konce
roury bezi zaroven (**). Leda ze by shell byl multithreadovy (nebo roura
obhospodarovana select/poll()) a obe strany roury byly interni prikazy
shellu.

(*) bezne obe, nektere shelly zarucuji, ze posledni cast roury bude
    provadena aktualnim shellem)

(**) jinak by se muselo cekat, az ta jedna strana to cele dopise do
     nejakeho bufferu, a potom to z toho bufferu cele nahazet do te
     druhe strany, coz by asi nikdo nechtel.

-- 
         Martin Mačok                 http://underground.cz/
   martin.macok na underground.cz        http://Xtrmntr.org/ORBman/


Další informace o konferenci Linux