我有一个非常简单的shell脚本,我用它来遍历目录,并调用另一个shell脚本。我在我的本地机器上运行它(OSX运行bash 3.2),并在运行bash 4.2的远程服务器上使用它。
在服务器上,当我输入which bash
时,我得到/bin/bash
,所以我在顶部添加了该行。我仍然收到此错误,指向开始arrIN=
...
8: run_all_verification.sh: Syntax error: "(" unexpected (expecting "done")
shell脚本:
#!/usr/bin/bash
#base name for all experiments
BASE_EXP_ID=$1;
for i in ${BASE_EXP_ID}*
do
#split file name by "__"
arrIN=(${i//__/ });
EXP_ID=${arrIN[0]}
NUM_FEATURES=${arrIN[1]}
echo "${EXP_ID} ${NUM_FEATURES}"
sh run_verification.sh ${EXP_ID} ${NUM_FEATURES}
done
答案 0 :(得分:16)
您的错误消息来自dash
,可能是因为您运行了sh filename
。
要使用bash
运行脚本,请使用bash filename
(或./filename
)。