Bash 如何解决错误:意外标记“do'”附近的语法错误;

Bash 如何解决错误:意外标记“do'”附近的语法错误;,bash,shell,jenkins,Bash,Shell,Jenkins,我正试图通过以下方式读取两个文件: if [[ $COPY_PREV_DEPLOYMENT == true ]]; then echo [$JOB_NAME] Copying old environment variables of $OLD_APP app to the new environment variables of $NEW_APP app... cf env $NEW_APP | awk '/User-Provided/,/No staging env varia

我正试图通过以下方式读取两个文件:

if [[ $COPY_PREV_DEPLOYMENT == true ]]; then
    echo [$JOB_NAME] Copying old environment variables of $OLD_APP app to the new environment variables of $NEW_APP app...
    cf env $NEW_APP | awk '/User-Provided/,/No staging env variables have been set/'| cut -f1 -d":" | tail -n +2 > env_variables.txt
    cf env $OLD_APP | awk '/User-Provided/,/No staging env variables have been set/'| cut -f2 -d":" | tail -n +2 > env_variables_values.txt
    paste env_variables.txt env_variables_values.txt | while read -r VARIABLE VALUE
    do
        cf set-env "$NEW_APP" "$VARIABLE" "$VALUE"
    done 
    echo [$JOB_NAME] Done.
fi
但我面临着这个问题

..…sh:第61行:意外标记附近的语法错误
do'
……sh:第61行:
do('

有人能帮我解决吗


非常感谢您在
if
条件之后不使用
do
do…done
主要用于中。而且,似乎不需要用括号从中包装此单个执行语句

代码可能如下所示:

if [[ $COPY_PREV_DEPLOYMENT == true ]]; then
    echo $JOB_NAME Copying old environment variables of $OLD_APP app to the new environment variables of $NEW_APP app...
    cf env $NEW_APP | awk '/User-Provided/,/No staging env variables have been set/'| cut -f1 -d":" | tail -n +2 > env_variables.txt
    cf env $OLD_APP | awk '/User-Provided/,/No staging env variables have been set/'| cut -f2 -d":" | tail -n +2 > env_variables_values.txt
    paste env_variables.txt env_variables_values.txt | while read -r VARIABLE VALUE; do 
        cf set-env "$NEW_APP" "$VARIABLE" "$VALUE"
        done
    echo $JOB_NAME Done.
fi

删除
()
s?do应该在我必须删除()之后,但同样的,否则它会说接近“完成”如何运行脚本?第一行是什么?您运行的是什么版本的shell?@choroba我正在使用Jenkins来运行脚本,第一行:#!/bin/bash-x和shell版本我不知道如何获取它管道后有一个
,所以
do
done
是完全有效的。另外,
(…)
用于子shell,而不是链接。顺便说一句,该脚本对我来说没有错误。当然,我已经更新了注释。我不熟悉cloudfoundry cli,所以我没有触及它,只关注bashbits@choroba感谢您指出这一点。while循环以前不存在,这是结果“+粘贴env_variables.txt env_vari”ables_values.txt+'['读取-r变量值']']'/tmp/…sh:第60行:[:参数太多粘贴:写入错误:管道断裂'我的错误,此处不需要方括号。我已更新脚本