如何在bash -c中声明变量

死神908

我不知道如何在bash -c命令中声明变量

bash -c "var=3; echo $var"
库萨兰达

让我们看看这里实际发生了什么:

$ set -x
$ bash -c "var=3; echo $var"
+ bash -c 'var=3; echo '

随着set -x你得到了什么命令实际执行的轨迹(使用set +x关闭这个功能)。在这里,我们看到在子外壳程序运行之前,该$var变量已扩展为空字符串bash -c

这是由于对参数的双引号引起的bash -c,这将提示当前shell在字符串内进行变量扩展。由于var变量在当前shell中是未定义的或为空,因此它的扩展为空字符串。

为了保护字符串不受外壳的“干扰”,请使用单引号:

$ bash -c 'var=3; echo $var'
+ bash -c 'var=3; echo $var'
3

...或逃脱$(IMO不太好):

$ bash -c "var=3; echo \$var"
+ bash -c 'var=3; echo $var'
3

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章