在BASH,
我应该注意,变量$ Lambda0_List等是从代码中较早的输入文件中读取的 .
PARAM_ARRAY =(“Lambda0”“N”“M”“Sigma”)
我在“$ {PARAM_ARRAY [@]}”
做
目录= “$ I” _List
变化= “$ I” _Vary
Use_Range = “$ I” _Use_Range
Initial_Str = “$ I” _Initial
Final_Str = “$ I” _Final
Step_Str = “$ I” _Step
初始= $ {!Initial_Str}
步骤= $ {!Step_Str}
最终= $ {!Final_Str}
if [“$ {!Vary}”==“T”]
然后
if [“$ {!Use_Range}”==“T”]
然后
eval“$ List =(seq $ Initial $ Step $ Final
)”
echo“$ i:vary,use_range”
其他
echo“$ i:不同,使用列表”
科幻
科幻
DONE
引发语法错误
意外令牌附近的语法错误`(''
通常我能够解释错误并找到解决方案,但我不明白为什么“(”是一个意外的令牌 .
编辑:
我注意到如果我在shell中运行它,这行可行,但不在我的脚本中,
编辑:
摆弄有问题的线条,我发现即使它被注释掉,我也会收到语法错误!
/test.sh:line 266:意外标记附近的语法错误
(' . / test.sh:第266行:######## eval“$ List =(seq $ Initial $ Step $ Final
)” “
3 回答
为什么不使用elif或case?
评估“$ List =(
seq $Initial $Step $Final
)”代替
评估“$ {List =(
seq $Initial $Step $Final
)} " or eval " $ {List =seq $Initial $Step $Final
}”之后!最后你有a)而不是}
在筛选了一些早期的代码之后,我修复了'vs'的一些问题,并且这个错误停止了 . 我是BASH的新手所以我没想到带有')'的错误消息是由引用100行引起的以上 .