我正在尝试进行
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
的环境中。(