在 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 $Initial $Step $Final `)"'