Как определить переменную среды в входной команде SU
Вопрос
Эта команда имеет пустой выход.
su user -c "ABC=abc;echo $ABC"
Любая идея, как я могу определить переменную в команде ввода?
Решение
Измените свои цитаты на отдельные цитаты. Двойные цитаты позволяют переменной заменены в текущей среде, где она еще не установлена. Чтобы увидеть разницу, попробуйте свою версию с $USER
И сравните это с этим:
su user -c 'ABC=abc; echo $ABC; echo $USER'
Другие советы
При использовании варианта Bourne Shell:
Abc = abc su under -c 'echo $ abc'
Если нет, используйте env.
ENV ABC = ABC SU Пользователь -C 'Echo $ ABC'
Не связан с StackOverflow