我想弄明白,oneliner怎么样
var=value command
Run Code Online (Sandbox Code Playgroud)
实际上是sh.我希望变量var
被传递到环境中command
,但不应该存在于当前环境中(请不要在最后省略免责声明!)
首先,让我们在bash中尝试它
#bash
$ var= #just to be sure it's empty
$ var=value echo something
. something
$ echo "$var"
.
$ var=value set something
$ echo "$var"
.
Run Code Online (Sandbox Code Playgroud)
目前,它按预期工作.但是当我们去sh并重新输入相同的输入时,它会是这样的:
#sh
$ var=
$ var=value echo something
. something
$ echo "$var"
.
$ var=value set something
$ echo "$var"
. value
Run Code Online (Sandbox Code Playgroud)
最后一个不同.set
sh 是命令某种特殊情况吗?为什么变量var
已保存在我们当前的环境中?
免责声明:我知道,echo
并且set
是shell内置的,因此环境变量,我们将通过他们var=value command
都浪费了,但我的问题是关于唯一的语法.我的意思是,它们应该被浪费,但是在sh中,当键入时set
,变量以某种方式传递到当前环境中.