如何将bash变量作为ssh-keygen参数传递



我正在尝试进行

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

REPO显示为""

如果我执行export REPO="wordpress-sites",则REPO被永久设置,这是我不希望的。

语法VAR=value <command>使VAR在命令的环境中可用,但shell在执行变量扩展时看不到它。如果你想让shell看到它,你必须在一个单独的语句中设置它。如果希望防止变量泄漏到脚本的其余部分,可以在子shell中运行所有内容。

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

(注意,我没有使用export,因为它只是一个shell变量。它不需要导出到ssh-keygen的环境中。(

最新更新