我想要以下内容:
$ DOMAIN=chron echo snippet-www.$DOMAIN.com-head.html
输出:
snippet.www.chron.com-head.html
但是对于我的生活,除了通过两个命令之外,我无法弄清楚如何做到这一点:
$ export DOMAIN=chron
$ echo snippet-www.$DOMAIN.com-head.html
有没有办法让它作为一个命令工作?
我想要以下内容:
$ DOMAIN=chron echo snippet-www.$DOMAIN.com-head.html
输出:
snippet.www.chron.com-head.html
但是对于我的生活,除了通过两个命令之外,我无法弄清楚如何做到这一点:
$ export DOMAIN=chron
$ echo snippet-www.$DOMAIN.com-head.html
有没有办法让它作为一个命令工作?
我偶然发现了答案!
只需在变量赋值后添加分号 (;)。
$ DOMAIN=chron; echo snippet-www.$DOMAIN.com-head.html
snippet-www.chron.com-head.html
$ ( export DOMAIN=chron ; echo snippet-www.$DOMAIN.com-head.html )
这会产生$DOMAIN
一个环境变量(这对于本示例无关紧要,但对于其他类似的命令可能),并将其生命周期限制在括号内。
您的答案:
$ DOMAIN=chron; echo snippet-www.$DOMAIN.com-head.html
导致$DOMAIN
成为(非导出的)shell 变量,并为以后的命令保留设置。
这应该工作
DOMAIN=chron eval 'echo snippet-www.$DOMAIN.com-head.html'