Bash 变量和CLI?
我希望:Bash 变量和CLI?,bash,Bash,我希望: $ 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
要输出:
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
这使得$DOMAIN
成为一个环境变量(对于本例来说,这无关紧要,但对于其他类似的命令可能无关紧要),并且它将其生存期限制在括号内
你的回答是:
$ DOMAIN=chron; echo snippet-www.$DOMAIN.com-head.html
使$DOMAIN
成为(非导出的)shell变量,并为以后的命令保留设置。这应该有效
DOMAIN=chron eval 'echo snippet-www.$DOMAIN.com-head.html'
; 是一个新行,与在两行中执行相同,但在两行中执行没有任何错误。XXX=YYY程序语法要求“program”是一个真正的程序。问题是替换是在变量赋值之前完成的。好奇的是:与只执行
echo snippet-www.chron.com head.html
相比,这样做有什么好处?也就是说,为什么首先需要变量?
DOMAIN=chron eval 'echo snippet-www.$DOMAIN.com-head.html'