Linux cp命令的怪异行为

Linux cp命令的怪异行为,linux,bash,unix,Linux,Bash,Unix,我对BASH脚本有一个奇怪的问题,我无法解决。我不知道为什么这种事一直发生。我不发布整个脚本,因为它的长度,但只有重要的部分 信息在脚本的注释中 脚本 #替换%ZONE%占位符 #2个参数:路径、区域,格式为z3、z4 区域路径(){ value=`echo${1}| sed“s/%ZONE%/${2}/”` echo美元价值 } createInstance(){ JBOSS_NAME=“JBOSS” JBOSS_DIR=“/home/JBOSS” #输出区\u DIR\u TMP的回音看起来

我对BASH脚本有一个奇怪的问题,我无法解决。我不知道为什么这种事一直发生。我不发布整个脚本,因为它的长度,但只有重要的部分

信息在脚本的注释中

脚本

#替换%ZONE%占位符
#2个参数:路径、区域,格式为z3、z4
区域路径(){
value=`echo${1}| sed“s/%ZONE%/${2}/”`
echo美元价值
}
createInstance(){
JBOSS_NAME=“JBOSS”
JBOSS_DIR=“/home/JBOSS”
#输出区\u DIR\u TMP的回音看起来像/home/jboss/z3
OUTPUT_ZONE_DIR_TMP=`zonePath${OUTPUT_ZONE_DIR}${3}`
如果[[!-e${OUTPUT\u ZONE\u DIR\u TMP}/${JBOSS\u NAME}/server/${2}]],则
mkdir-p${OUTPUT\u ZONE\u DIR\u TMP}/${JBOSS\u NAME}/server/${2}
cp-r${JBOSS\u DIR}/${JBOSS\u NAME}/server/default/*${OUTPUT\u ZONE\u DIR\u TMP}/${JBOSS\u NAME}/server/${2}
fi
#但是这里我得到了一个错误的目录,因为路径是
#/home/jboss//jboss/server-那里缺少z3字符串-为什么???
cp-r`zonePath${SOLUTION\u APP\u PATH}${3}`/${1}${OUTPUT\u ZONE\u DIR\u TMP}/${JBOSS\u NAME}/server/${2}/deploy
}
#在脚本中,我调用createInstance函数,例如
createInstance“系统长名称”“系统”z3
createInstance“system2长名称”“sys2”z4

将shebang更改为
#/bin/bash-x
并查看输出,确保所有内容都已正确展开


阅读有关bash调试的更多信息

一如既往,将shebang更改为
#/bin/bash-x
并查看输出,确保所有内容都已正确展开…@Fredrik谢谢,我不知道如何调试它。我在那里发现了一个小错误…与其测试-e作为目录,不如测试-dAlso path不需要在bash中引用,您可以尝试用w/o替换JBOSS_NAME,只需使用“$JBOSS_NAME”来保留空格以防出现。@hornetbzz-d和-e之间有什么区别?你所说的“w/o替换JBOSS_NAME”是什么意思?同样值得一提的是:
-e
要在错误时停止(在正常信号捕获下)Tomas,答案是可以接受的,但它与真正的问题(a
cp
问题)无关。无论如何,
cp
错误是什么?这是怎么解决的?