Shell Concat 配置文件中的字符串

Shell Concat 配置文件中的字符串

我像这样创建了 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

两个错误

  1. 没有像source中这样的命令/bin/sh。也许你想写#!/bin/bash在第一行,或者使用. ./config.cfg
  2. 该脚本失败是因为您config.cfg在 Windows 系统上创建/编辑了该文件并将该文件(以二进制模式)复制到了 Unix/Linux 系统。

您可以通过运行dos2unix config.cfg或在您最喜欢的基于 Unix/Linux 的编辑器中编辑文件并删除^M您将在每行末尾看到的字符。

相关内容