我像这样创建了 config.cfg
DB_USERNAME='abcdef'
DB_PASSWORD='1234'
然后我的 shell.sh 已读取配置并尝试连接字符串
#! /bin/sh
source config.cfg
DB_CONN="${DB_USERNAME}/${DB_PASSWORD}"
echo $DB_CONN
预期如此,abcdef/1234
但它返回,/1234f
看起来像是/1234
在 top 上进行了替换abcdef
。
我哪里做错了?
答案1
两个错误
- 没有像
source
中这样的命令/bin/sh
。也许你想写#!/bin/bash
在第一行,或者使用. ./config.cfg
? - 该脚本失败是因为您
config.cfg
在 Windows 系统上创建/编辑了该文件并将该文件(以二进制模式)复制到了 Unix/Linux 系统。
您可以通过运行dos2unix config.cfg
或在您最喜欢的基于 Unix/Linux 的编辑器中编辑文件并删除^M您将在每行末尾看到的字符。