尽管成功读取配置文件,但使用 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 指出的,thescript可能有 Windows 换行符(回车/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要解决这个问题。

相关内容