在bash,語法錯誤,間接擴張變量聲明
我要指出的是,變量$ Lambda0_List等,都從輸入文件前面的代碼讀取。
PARAM_ARRAY=("Lambda0" "N" "M" "Sigma") for i in "${PARAM_ARRAY[@]}" do List="$i"_List Vary="$i"_Vary Use_Range="$i"_Use_Range Initial_Str="$i"_Initial Final_Str="$i"_Final Step_Str="$i"_Step Initial=${!Initial_Str} Step=${!Step_Str} Final=${!Final_Str} if [ "${!Vary}" == "T" ] then if [ "${!Use_Range}" == "T" ] then eval "$List=(`seq $Initial $Step $Final `)" echo "$i : vary, use_range" else echo "$i: vary, use list" fi fi done
拋出一個語法錯誤附近意外的標記
語法錯誤'(」
通常我能夠解釋錯誤並找到解決方案,但我不明白爲什麼「(」是一個意外的標記。
編輯:
我發現,如果我在shell中運行它此行的工作,但不是在我的劇本,
編輯:
有問題的線擺弄周圍,我發現即使其註釋掉,我也會得到語法錯誤!
/test.sh:行266:附近意外的標記語法錯誤'(」
./test.sh:行266:
######## eval "$List=(
SEQ美元的首次$ $步最後`)「」
什麼變量的值? – Koterpillar
我已經更新了問題以包含變量賦值。 儘管首字母I的外觀與eval語句不同,但它們在我的代碼中鍵入的內容相同。 –