在bash one-liner中为多个命令设置环境变量

Pav*_* K. 22 linux bash command-line

假设我有以下命令

$> MYENVVAR = myfolder echo $ MYENVVAR && MYENVVAR = myfolder ls $ MYENVVAR

我的意思是MYENVVAR = myfolder重复

是否可以为"&&"分隔命令设置一次,同时将命令保持在一行?

Jon*_*ler 31

假设您确实需要它作为环境变量(即使示例代码实际上不需要环境变量;某些shell变量不是环境变量):

(export MYENVVAR=myfolder; echo $MYENVVAR && ls $MYENVVAR)
Run Code Online (Sandbox Code Playgroud)

如果您不需要它作为环境变量,那么:

(MYENVVAR=myfolder; echo $MYENVVAR && ls $MYENVVAR)
Run Code Online (Sandbox Code Playgroud)

括号创建一个子shell; 在子shell中设置的环境变量(和普通变量)不会影响父shell.在显示的两个命令中,变量设置一次然后使用两次,两次命令中的每一个都使用一次.