On Fri, Feb 23, 2001 at 10:25:55AM +0100, Hilmar Preusse wrote:
drachi:[~] #su - hille -c "echo ${HOME}" /root drachi:[~] #su - hille drachi:[hille] >echo $HOME /home/hille
Setz mal in der .bash_profile von hille eine Variable, z.B. export FOO="hier bin ich bei hille", und setz dieselbe Variable bei root auf "hier bin ich bei root".
Dann versuch das hier:
# su - hille -c "echo $FOO" * hier bin ich bei root # su - hille ** $ echo $FOO hier bin ich bei hille
Bei "su - $MYUSER -c $MYCOMMAND" macht er scheinbar zwar einen auf login, sourced aber die .bash_profile nicht, bei "su - $MYUSER" aber.
(*) bash wird mit UID{hille} als noninterktive login shell ausgeführt (**) bash wird mit UID{hille} als interaktive login shell ausgeführt
In beiden Fällen sollte die .bash_profile gesourced werden, wird sie aber nicht. Also scheint su den Fall (*) als noninteraktive nonlogin shell zu interpretieren (es ignoriert also das "-"). Warum das so ist, weiß ich auch nicht.
Gruß, Eric