Linux Shell脚本奇怪的问题

Linux Shell脚本奇怪的问题,linux,bash,shell,Linux,Bash,Shell,我已经编写了以下shell脚本。它在home dir中运行良好,但现在我已将此文件移动到另一个文件夹,当尝试运行此文件时,会出现:无效标识符错误。 #!/bin/bash echo "Specify environment(DEV,QA,PROD)" read environment upperString="${environment^^}" export HYBRIS_OPT_CONFIG_DIR=$HOME/hybris5.7/hybris/bin/custom/rockport-shop

我已经编写了以下shell脚本。它在home dir中运行良好,但现在我已将此文件移动到另一个文件夹,当尝试运行此文件时,会出现
:无效标识符错误。

#!/bin/bash
echo "Specify environment(DEV,QA,PROD)"
read environment
upperString="${environment^^}"
export HYBRIS_OPT_CONFIG_DIR=$HOME/hybris5.7/hybris/bin/custom/rockport-shop/Configurations/Environments/config-"$upperString"
echo "Added Configuration ... "

如何找到问题?

您的问题数据不完整,但我敢打赌,即使您在此处键入:

export-HYBRIS\u OPT\u CONFIG\u DIR=$HOME/hybris5.7/HYBRIS/bin/custom/rockport-shop/Configurations/Environments/CONFIG-“$upperString”

你真的有

export$HYBRIS\u OPT\u CONFIG\u DIR=$HOME/hybris5.7/HYBRIS/bin/custom/rockport-shop/Configurations/Environments/CONFIG-“$upperString”


错误很可能来自导出,如果它没有告诉您哪个标识符无效,则该标识符丢失或扩展为null。在这种情况下,unset变量很可能已展开。从HYBRIS中删除
$

如果您使用dos环境传输了dos2unix,请执行该操作

dos2unix script_name

如果在系统中找不到dos2unix命令,请安装dos2unix软件包。

在脚本文件中看起来像是异常的DOS回车符。脚本不能有意义地将任何内容导出到其父脚本。您只能将
导出到子进程。这一个不会创建任何变量,并且在脚本结束时变量会消失。如果不使用-r读取,则会损坏反斜杠,因为它与您的情况无关。您正在导出变量的可能副本,因此该脚本可能正在获取源代码,而不是运行。该脚本中的shebang被忽略。父shell可能不是bash,也不是类似的。我逐行检查了执行,我认为它在upperString=“${environment^^}”处被卡住了,但在主目录中工作正常