.bash_*
我正在尝试从类似于以下内容的文件(不是)加载几个变量:
export MY_VAR='foo'
我用来“获取”这个命令的是
`tail -1 myFile`
这有效,但我echo $MY_VAR
得到
'foo'
但我实际上export MY_VAR='foo'
在终端中运行它,然后echo $MY_VAR
它输出:
foo
为何报价不一致?我该如何修复?
答案1
使用反引号是一种称为命令替换的东西。shell 在解析输出中的标记后会替换它。由于它在输出中遇到了引号,它会对其进行转义。因此,它会执行:
export MY_VAR=\'foo\'
将变量放在引号中。
您可以利用进程替换并继续使用以下source
命令:
source <(tail -1 myFile)