Как определить переменную окружения во входной команде su - PullRequest
6 голосов
/ 09 сентября 2010

Эта команда имеет пустой вывод.

su user -c "ABC=abc;echo $ABC"

Есть идеи, как определить переменную во входной команде?

Ответы [ 2 ]

5 голосов
/ 09 сентября 2010

Измените ваши кавычки на одинарные кавычки.Двойные кавычки позволяют заменять переменную в текущей среде, где она еще не установлена.Чтобы увидеть разницу, попробуйте свою версию с $USER и сравните ее с этой:

su user -c 'ABC=abc; echo $ABC; echo $USER'
2 голосов
/ 09 сентября 2010

При использовании варианта оболочки Bourne:

ABC=abc su user -c 'echo $ABC'

Если нет, используйте env.

env ABC=abc su user -c 'echo $ABC'
...