Usando o comando “source” do bash, retorna um erro apesar de ter lido com sucesso o arquivo de configuração [duplicate]

0

Eu quero que meu script bash leia os parâmetros do arquivo de configuração. Aqui está o que está dentro do script:

#!/bin/bash
source /home/myscript/conf/config.conf

echo "$username"

e abaixo está o meu config.conf:

username="jonas"

A saída quando eu executo o script:

[user@machinename bin]$ . thescript
: No such file or directoryonfig.conf
: command not found
jonas

Aqui estou confuso, embora ele imprima com sucesso "jonas", por que há erro "Nenhum arquivo ou diretório" e "comando não encontrado"?

Estou fazendo algo errado?

    
por lacha 14.08.2014 / 07:41

1 resposta

3

Como @Mat apontou, thescript provavelmente possui novas linhas do Windows (retorno de carro / CR seguido por feed de linha aka. LF). Comparar:

$ echo : No such file or directoryonfig.conf
: No such file or directoryonfig.conf
$ printf '/[.................]/conf/config.conf\r: No such file or directory\n'
: No such file or directoryonfig.conf

Use dos2unix thescript para corrigir.

    
por 14.08.2014 / 10:28