Portál AbcLinuxu, 25. dubna 2024 11:50


Dotaz: proc nelze dal definovat promenne v bashi ?

26.8.2005 09:06 Seal
proc nelze dal definovat promenne v bashi ?
Přečteno: 47×
Odpovědět | Admin
Proc se po zadani naledujiciho prikazu

su seal -c "XYZ=test;echo $XYZ"

nezobrazi obsah promenne XYZ ?

Prikaz su jsem pochopil tak, ze spusti login shell pro zadaneho usera(seal ma bash) a spusti v nem prikazy za parametrem -c. Nechapu, proc se "ztraci" obsahy promennych definovanych v tomhle subshellu :-(

Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

26.8.2005 09:26 hele
Rozbalit Rozbalit vše Re: proc nelze dal definovat promenne v bashi ?
Odpovědět | | Sbalit | Link | Blokovat | Admin
nevim zda to su funguje nefunguje, ale jiste je ze uzitim uvozovek " se $XYZ vyhodnoti jeste pred spustenim v aktualnim bashi.

tedy teoreticky su seal -c 'XYZ=test;echo $XYZ' by mohlo fungovat za predpokladu ze to su dela co pozadujete.
26.8.2005 09:43 Seal
Rozbalit Rozbalit vše Re: proc nelze dal definovat promenne v bashi ?
Ze by ten osklivy su nejdrive expandoval cely prikaz podle aktualniho shellu a ten pak spustil v login subshellu ?

Asi ano:

...
seal@sentinel:~$ XYZ=imstupid
seal@sentinel:~$ su seal -c "XYZ=test;echo $XYZ"
seal@sentinel:~$ imstupid
...
Diky, to bylo ono.
26.8.2005 10:54 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: proc nelze dal definovat promenne v bashi ?
Ne, shell nejdřív expanduje proměnnou a pak teprve parametr předá příkazu su. A nedělá to proto, že je ošklivý, ale proto, že je tak naprogramovaný a že je to tak popsáno v jeho dokumentaci.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.