我有一个非常简单的shell脚本,我用它来遍历目录,并调用另一个shell脚本.我在我的本地机器上运行它(OSX运行bash 3.2),并在运行bash 4.2的远程服务器上使用它.
在服务器上,当我输入时which bash,我得到了/bin/bash,所以我在顶部添加了这一行.我仍然得到这个错误,指向开始的行arrIN=...
8: run_all_verification.sh: Syntax error: "(" unexpected (expecting "done")
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
tha*_*guy 18
您的错误消息来自dash,可能是因为您运行了sh filename.
要bash使用bash filename(或./filename)运行脚本.