使用shell脚本将变量导出到linux

使用shell脚本将变量导出到linux,linux,shell,export,Linux,Shell,Export,我想使用shell脚本将变量导出到linux。我的贝壳纸条如下: export dbHost=server01 export dbName=someName 当我在运行脚本后打印这些变量时,我得到以下输出 "eclare -x dbHost=" server01 declare -x dbName=" someName " 因此,它正确地导出了dbName,而不是dbHost。如果我只保留第一行 export dbHost=server01 然后在脚本中正确打印dbHost。 我做错了什么

我想使用shell脚本将变量导出到linux。我的贝壳纸条如下:

export dbHost=server01
export dbName=someName
当我在运行脚本后打印这些变量时,我得到以下输出

"eclare -x dbHost=" server01
declare -x dbName=" someName "
因此,它正确地导出了dbName,而不是dbHost。如果我只保留第一行

export dbHost=server01
然后在脚本中正确打印dbHost。 我做错了什么

当我在运行脚本后打印这些变量时

您导出的变量只在脚本运行的shell内部和子shell中可见。如果要在脚本终止后查看效果,必须
source
脚本


可以在超级用户上对此的回答中找到解释。

我怀疑您的文件中有DOS行结尾,您可以使用以下内容进行测试:

cat -t file.sh
这将显示如下内容:

export dbHost=server01^M
export dbName=someName^M

要解决此问题,请在
文件.sh

@anubhava上运行
dos2unix
,方法是键入以下命令“./fileName.sh”(不带引号),谢谢anubhava,这就是问题所在