如何获取(或运行)尾部输出

如何获取(或运行)尾部输出

.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)

相关内容