我希望我的 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
要解决这个问题。