-bash:eval:第109行:在寻找匹配的'"'时出现意外的EOF

时间:2014-07-28 09:49:34

标签: bash

if [[ -s $GCMS_ENV && -r $GCMS_ENV ]]
then

    echo "">/dev/null        ##file exists
    if [[ -s $GCMS_PRIV_ENV && -r $GCMS_PRIV_ENV ]]

    then

            egrep  "[A-Z]?=.[a-zA-Z0-9]?" $GCMS_PRIV_ENV  | grep -v ^# 2>/dev/null 1> $TMP_FILE
            egrep  "[A-Z]?=.[a-zA-Z0-9]?" $GCMS_ENV | grep -v ^# 2>/dev/null 1>> $TMP_FILE
    else
            egrep  "[A-Z]?=.[a-zA-Z0-9]?" $GCMS_ENV | grep -v ^# 2>/dev/null 1> $TMP_FILE
    fi
    {


            while read RECORD
            do
                    VAR=$(echo $RECORD|cut -s -d$DELIM -f1)
                    VAL=$(echo $RECORD|cut -s -d$DELIM -f2-9)
                    eval export $VAR=$VAL
            done
    }<$TMP_FILE

else

    echo "\n$THIS_FILE\n error:"
    echo "The file $GCMS_ENV does not exist, no environment settings!"
    return 1
fi

我正在尝试在我的linux框中运行以下kSH shell,同时运行相同的我面临以下错误。

  

-bash:eval:第109行:寻找匹配的'&#34;&#39;

时意外的EOF      

-bash:eval:第110行:语法错误:意外的文件结尾

请让我知道任何人都有同样的答案

1 个答案:

答案 0 :(得分:1)

应尽可能避免使用

eval,尤其是当它可能导致您观察到的语法错误时。用它代替while循环。

while read -d"$DELIM" VAR VAL; do
    declare -x "$VAR=$VAL"
done < "$TMP_FILE"

您可能仍然遇到eval触发的错误,因此请仔细检查您的输入文件,以确保作业与"匹配。