我有一个名为 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
(.
)该文件了。