[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