<分区>
我正在尝试通过以下命令执行命令列表:
bash -l -c "commands"
但是,当我定义一个变量然后尝试使用它们时,该变量是未定义的(空的)。明确一点:
bash -l -c "var=MyVariable; echo $var"
标签 bash
<分区>
我正在尝试通过以下命令执行命令列表:
bash -l -c "commands"
但是,当我定义一个变量然后尝试使用它们时,该变量是未定义的(空的)。明确一点:
bash -l -c "var=MyVariable; echo $var"
最佳答案
Bash 扩展(如 here 所述)将在实际执行命令之前扩展双引号内的变量值。为避免这种情况,您可以遵循以下任一选项:
选项 1:
避免使用单引号展开
bash -l -c 'var=MyVariable; echo $var'
选项 2:
通过转义所需的变量来避免双引号内的扩展
bash -l -c "var=MyVariable; echo \$var"
第二个选项允许您扩展一些变量,而另一些则不能。例如:
expandVar=MyVariable1
bash -l -c "var=MyVariable; echo $expandVar; echo \$var"
关于bash - 在 Bash 的单行命令中定义变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47201614/