bashの "source"コマンドを使用すると、構成ファイルが正常に読み込まれたにもかかわらずエラーが返されます。

bashの "source"コマンドを使用すると、構成ファイルが正常に読み込まれたにもかかわらずエラーが返されます。

私のbashスクリプトが設定ファイルからパラメータを読み取るようにしたいと思います。スクリプトの内部内容は次のとおりです。

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

echo "$username"

以下は私のconfig.confです。

username="jonas"

スクリプトを実行すると出力されます。

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

ここで混乱しています。 「jonas」が正常に印刷されたにもかかわらず、「該当するファイルまたはディレクトリがありません」と「コマンドが見つかりません」というエラーが表示されるのはなぜですか?

私は何が間違っていましたか?

答え1

@Matが指摘したように、thescriptWindowsの改行(キャリッジリターン/CRの後に改行、別名LF)があるかもしれません。比較する:

$ 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

使用dos2unix thescriptこの問題を解決するには。

関連情報