我正在開發一個 shell 腳本來將特定檔案夾從目標路徑同步到目標路徑,我需要執行如下腳本:
sh deploy.sh deploy staging particular_folder_name
下面是我開發的腳本:
function deploy() {
staging
}
function staging() {
ENTITY_NAME="$1"
echo "deployment here"
ENTITY_PATH=`ls -ld /u01/home/${USER}/testing_vela/subject-areas/entites/staging-modules/${ENTITY_NAME}`
echo $ENTITY_PATH
DEPLOYMENT_FOLDER=`echo $ENTITY_PATH|rev|awk -v FS='/' '{print $1}'|rev`
echo $DEPLOYMENT_FOLDER
SOURCE_PATH='/u01/home/${USER}/testing_vela/deploy/subject-areas/modules'
DESTINATION_PATH='/u02/home/${USER}/testing_vela/subject-areas/entites/staging-modules'
if [ "${ENTITY_NAME}" == "${DEPLOYMENT_FOLDER}" ]
then
echo "folder is exist"
rsync -avzh ${SOURCE_PATH}/${ENTITY_NAME} ${DESTINATION_PATH}/${ENTITY_NAME}
else
echo "folder does not exist"
fi
}
case $1 in
deploy) "$@";
staging) "$@";
esac
如果我在上面的腳本中做錯了什么,有人可以幫我糾正嗎?每當我執行腳本時,我都會面臨以下錯誤。
錯誤:
sh deploy.sh deploy staging contract
deploy.sh: line 87: syntax error near unexpected token `)'
deploy.sh: line 87: `staging) "$@";'
uj5u.com熱心網友回復:
陳述句的語法case需要 2 個分號來終止 case 的命令:
case $1 in
deploy) "$@";;
staging) "$@";;
esac
uj5u.com熱心網友回復:
如果仍然拋出錯誤,請將 2 個分號放在下一行,如下所示:
case $1 in
deploy) "$@"
;;
staging) "$@"
;;
esac
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/491450.html
