我有一個奇怪的問題,我想不出BASH腳本。我不知道爲什麼這會繼續發生。由於篇幅有限,我沒有發表整個劇本,只有重要的部分。奇怪的行爲的cp命令
信息在腳本的評論中。
Script
# replaces %ZONE% placeholder
# 2 params: path, zone in format z3, z4
zonePath() {
value=`echo ${1} | sed "s/%ZONE%/${2}/"`
echo $value
}
createInstance() {
JBOSS_NAME="jboss"
JBOSS_DIR="/home/jboss"
# echo of OUTPUT_ZONE_DIR_TMP looks correctly like /home/jboss/z3
OUTPUT_ZONE_DIR_TMP=`zonePath ${OUTPUT_ZONE_DIR} ${3}`
if [[ ! -e ${OUTPUT_ZONE_DIR_TMP}/${JBOSS_NAME}/server/${2} ]]; then
mkdir -p ${OUTPUT_ZONE_DIR_TMP}/${JBOSS_NAME}/server/${2}
cp -r ${JBOSS_DIR}/${JBOSS_NAME}/server/default/* ${OUTPUT_ZONE_DIR_TMP}/${JBOSS_NAME}/server/${2}
fi
# BUT here I get an error of wrong directory because the path is
# /home/jboss//jboss/server - the z3 string is missing there - WHY???
cp -r `zonePath ${SOLUTION_APP_PATH} ${3}`/${1} ${OUTPUT_ZONE_DIR_TMP}/${JBOSS_NAME}/server/${2}/deploy
}
# in the script I call the createInstance function for example like this
createInstance "system-long-name" "sys" z3
createInstance "system2-long-name" "sys2" z4
一如既往,將shebang更改爲'#!/ bin/bash -x'並查看輸出並確保所有內容都已正確展開... –
@Fredrik謝謝,我不知道如何調試它。我發現有一個小錯誤... – user219882
而不是測試-e目錄,你會更好地測試-d – hornetbzz