bash - 如何为整个命令应用环境变量

标签 bash shell terminal environment-variables urxvt

在我的 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/

相关文章:

linux - 需要 grep 和整数表达式

linux - 如何根据文件名创建目录并使用 bash 脚本将该文件复制到目录的末尾?

linux - 如何在 shell 脚本中杀死等待的子进程

mysql - OS X 上的 Apache MySQL 控制脚本

bash - 如何在 ubuntu 上的 emacs 中运行 shell 命令同时避免 bash 作业控制错误?

regex - 如何从文件中删除非数字垃圾

linux - 如何在 Linux 中杀死一系列连续的进程?

linux - 如何删除目录中的文件没有特定正则表达式匹配的目录?

linux - 在终端中自定义多个选项卡

Python cv2.imshow() 不工作 : cannot connect to X server