как передать bash переменную в качестве аргумента s sh -keygen? - PullRequest
0 голосов
/ 20 апреля 2020

Я пытаюсь сделать это

REPO="wordpress-sites" ssh-keygen -t rsa -f ~/.ssh/${REPO}_rsa -C "${REPO} deploy"

, но REPO отображается как ""

Если я делаю export REPO="wordpress-sites", тогда REPO устанавливается постоянно, что я и не надеваю не хочу.

1 Ответ

1 голос
/ 20 апреля 2020

Синтаксис VAR=value <command> делает VAR доступным в среде команды, но оболочка не видит его при выполнении расширения переменной. Если вы хотите, чтобы оболочка увидела его, вы должны установить его в отдельном выражении. Вы можете запустить все внутри подоболочки, если хотите предотвратить утечку переменной к остальной части скрипта.

(REPO=wordpress-sites; ssh-keygen -t rsa -f ~/.ssh/"$REPO"_rsa -C "${REPO} deploy")

(Обратите внимание, что я не использовал export, поскольку это всего лишь переменная оболочки. Его не нужно экспортировать в среду ssh-keygen.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...