Переменная bash -c не присваивается - PullRequest
0 голосов
/ 03 мая 2019

Я пытаюсь выполнить следующую команду

 $ bash -c "var='test' && echo $var"

и печатается только пустая строка.

Если я выполню ту же команду без bash -c

$ var='test' && echo $var 
test

значение, присвоенное $ var, печатается. Может кто-нибудь объяснить, почему я не могу назначить переменные в первом примере?

1 Ответ

6 голосов
/ 03 мая 2019

Двойные кавычки расширяют переменные, поэтому ваша команда расширяется до

bash -c "var='test' && echo"

, если $var пусто при запуске. Вы можете проверить поведение с

var=hey
bash -c "var='test' && echo $var"

Переключить кавычки:

bash -c 'var="test" && echo $var'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...