Como chamar um arquivo de origem em um script Bash?

3

Eu tenho um arquivo de origem de variáveis chamado my.vars localizado em ~ /. Nele eu tenho:

FIRSTNAME=John
LASTNAME=Doe
FIRSTANDLASTNAME=John Doe

Em um script, chamo o arquivo de origem usando:

. ~/my.vars

Mas continuo recebendo o erro:

line 3: Doe: command not found

Eu li em algum lugar que o comando de origem realmente executa o programa para que ele possa ver o espaço como um delimitador.

Como posso chamar o arquivo de origem de variáveis no meu script? Eu também tentei:

source ~/my.vars

O mesmo resultado

    
por KDoe 18.08.2016 / 23:12

1 resposta

4

O problema é que, como você tem um espaço no valor da variável, como resultado, a primeira parte está sendo atribuída como o valor da variável e a última parte está sendo tratada como um comando autônomo, levando ao erro.

Portanto, a variável está sendo definida como FIRSTANDLASTNAME=John e Doe está sendo usado como um comando.

Você precisa de citar ou escapar, qualquer um dos seguintes faria:

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

Agora você seria capaz de source ( . ) o arquivo esperado.

    
por heemayl 18.08.2016 / 23:16

Tags