在我的 Bash 终端中,我定期执行一系列命令。例如:
cmd1 && cmd2 && cmd3
现在,我想定义一个环境变量,它应用于所有三个命令,并且仅作用于这些命令。我试过:
MY_VAR=abc cmd1 && cmd2 && cmd3
但是现在似乎只有 cmd1
看到了 MY_VAR
。
有没有办法将环境变量应用于所有三个命令?我知道我可以提前export
,但我更喜欢以一种特殊的方式在本地声明环境变量,因此它永远不会影响后续命令。
这很重要,我正在使用 urxvt
作为终端仿真器。
最佳答案
重复:MY_VAR=abc cmd1 && MY_VAR=abc cmd2 && MY_VAR=abc cmd3
或者使用子shell:
# wrapper subshell for the commands
cmds ()
{
cmd1 && cmd2 && cmd3
}
# invoke it
MY_VAR=abc cmds
如果您需要一次性输入整个内容,请执行以下操作:
cmds() { cmd1 && cmd2 && cmd3; }; MY_VAR=abc cmds
关于bash - 如何为整个命令应用环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57230690/