Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 变量和CLI?_Bash - Fatal编程技术网

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'