Boris Zentner wrote:
#!/bin/sh -x ###################################################### cat <<ENDE >/tmp/VARS BBNAME=/tmp/test$$ ENDE
sh -x << BOING & sh -x << ENDE su boing . /tmp/VARS echo XX $BBNAME XX ENDE BOING
Hallo Boris, habe bei mir versucht, das Problem nachzuvollziehen. Es stimmt, es gibt ein Problem. :-) Bei mir ist es aber so, daß das Script auch ohne 'su' die Variable nicht ausgibt. Leider konnte ich nicht ergründen, woran das liegt. So, wie ich es sehe, geht es Dir aber im wesentlichen darum, daß Du ein Script als anderer User ausführen willst, wobei Du noch einige Shell-Variablen übergeben willst. 1) Der eigendliche Gag des inline-Scripts ist, daß Shellvariablen im inline-Text zuerst substituiert werden, d.h. #!/bin/bash ###################################################### export VAR=/Hallo/Boris su wwwrun <<ENDE echo "Hallo Boris," echo "die ID ist $(id)" id ENDE $(id) wird noch vor der Ausführung von der Shell 'su' aus- geführt un d erstetzt. Das gleiche gilt für sonstige Shell- Variablen. Damit ist es kein Problem, direkt an das SU-Script variable Bestandteile zu übergeben, z.b. VAR="Variable" su wwwrun <<ENDE echo $VAR ENDE Zu beachten: VAR wird noch vor der Ausführung von 'su' ersetzt. 2) Bei dem 'su'-Kommando gibt es eine Option '--preserve-environment', die Du vielleicht suchst. Ciao Andreas Mock -- Um aus der Liste ausgetragen zu werden, eine Mail an majordomo@suse.com schicken, mit dem Text: unsubscribe suse-linux