如何在 Bash 脚本中调用源文件?

如何在 Bash 脚本中调用源文件?

我有一个名为 my.vars 的变量源文件,位于 ~/。其中有:

FIRSTNAME=John
LASTNAME=Doe
FIRSTANDLASTNAME=John Doe

在脚本中我使用以下命令调用源文件:

. ~/my.vars

但我一直收到错误:

line 3: Doe: command not found

我在某处读到,源命令实际上运行该程序,因此它可能将空格视为分隔符。

如何在脚本中调用变量源文件?我也尝试过:

source ~/my.vars

相同的结果

答案1

问题是由于变量值中有一个空格,因此第一部分被分配为变量值,而最后一部分被视为独立命令,从而导致错误。

因此,变量被设置为FIRSTANDLASTNAME=John并被Doe视为命令。

您需要引用或转义,以下任何一种方式都可以:

FIRSTANDLASTNAME="John Doe"
FIRSTANDLASTNAME='John Doe'
FIRSTANDLASTNAME=John\ Doe

现在您就可以按预期source.)该文件了。

相关内容