Answers:
VAR1=value1 VAR2=value2 myScript args ...
vblank_mode=0 glxgears
。它可以工作,但是vblank_mode=0: command not found
在运行后也会显示,而前置env
不会导致这种情况。[测试...]显然zsh不喜欢它(但仍然可以正确使用它),但是bash可以使用它。我想env
从现在开始我将继续使用该方法。
VAR1="hello" echo $VAR1
不返回任何内容吗?
VAR1="hello" bash -c 'echo $VAR1'
env VAR=value myScript args ...
VAR=value myScript args ...
PATH=$PATH:XYZ echo $PATH | grep XYZ
没有任何输出?2.使用和不使用有env
什么区别?
PATH=$PATH:XYZ sh -c 'echo $PATH' | grep XYZ
-单引号是关键
env
和不使用之间有什么区别?
IFS=$'\n' for l in lines; do ... done
刚放
export HOME=/blah/whatever
在脚本中您希望更改发生的位置。由于每个进程都有其自己的环境变量集,因此在脚本终止时(并且随之而来的是环境已更改的bash实例),此定义将自动失去任何意义。
export
会将变量传递给子shell,但它不控制父shell。如果您正在编写以“#!/ bin / sh”等开头的脚本,则退出脚本时,您设置的任何变量都会消失。
source
将由键入命令的外壳程序执行该脚本时,该脚本才会执行。
$HOME
被脚本执行的任何命令继承,则必须导出。如果他不这样做,并且的设置$HOME
仅是出于脚本本身的利益,那么他最好修改该脚本,以便它引用的不是$HOME
。