[so] Prioritate operatori
Bogdan Luca
so@cursuri.cs.pub.ro
Wed, 03 Nov 2004 20:04:45 +0200
Salut,
Am o mica nelamurire in legatura cu prioritatea operatorilor. Enuntul
problemei specifica faptul ca operatorii de executie conditionata
prioritate mai mare decat cel de redirectare (|) (de fapt au chiar cea
mai mare prioritate). Problema mea apare in momentul in care am o linie
de comanda de forma "cmd1 && cmd2 | cmd3 && cmd4". Considerand
prioritatea operatorilor de mai sus, aceasta comanda ar trebui sa se
execute astfel: "(cmd1 && cmd2) | (cmd3 && cmd4)" (adica "redirecteaza
stdout-ul comenzii compuse cmd1 && cmd2 spre stdin-ul comenzii compuse
cmd3 && cmd4"). Este destul de greu de definit, insa, stdout-ul si
stdin-ul unei comenzi compuse din comenzi simple separate prin operatori
de executie conditionata (de fapt singura varianta ar fi
stdin-ul/stdout-ul primei comenzi simple din comada compusa, despre care
stim sigur ca se executa).
De aceea, cred ca e mai corect ca operatorul de redirectare (|) sa aiba
cea mai mare prioritate, astfel incat operanzii lui sa fie intotdeauna
comenzi simple.
Deci, cum ar trebui sa abordam liniile de comanda de forma de mai sus?
Bogdan Luca
345CA