寻找匹配的“”问题时出现意外的 EOF

Jar*_*red 4 linux shell bash shellcheck

我需要一些帮助来找出我的代码出了问题的地方。代码如下:

servers=( Sanger )   
races=( American African Asian)
jobbs=( NCBI )      
ranges=( 1-2, 2-3, 3-4 )

for server in "${servers[@])"
do

for job in "${jobbs[@]}"
do


for race in "${races[@]}"
do

for range in "${ranges[@]}"
do

cd ${RESULTS}
cd "$server"
cd "$job"
cd "$race"
cd "$range"

for CHR in {1..22}
do

mv -v "$CHR".vcf.gz chr"$CHR".dose.vcf.gz
mv -v "$CHR".vcf.gz.csi chr"$CHR".dose.vcf.gz.csi

done   # chromo

done   # range

done   # race

done   # job

done   # server
Run Code Online (Sandbox Code Playgroud)

我的 Bash 终端返回错误:

./rename.sh: line 41: unexpected EOF while looking for matching `"'
./rename.sh: line 52: syntax error: unexpected end of file
Run Code Online (Sandbox Code Playgroud)

ShellCheck 输出如下:

Line 9:
for server in "${servers[@])"
               ^-- SC1009: The mentioned syntax error was in this parameter expansion.

Line 32:
mv -v "$CHR".vcf.gz chr"$CHR".dose.vcf.gz
                            ^-- SC1078: Did you forget to close this double quoted string?

Line 33:
mv -v "$CHR".vcf.gz.csi chr"$CHR".dose.vcf.gz.csi
      ^-- SC1079: This is actually an end quote, but due to next char it looks suspect.
                                ^-- SC1073: Couldn't parse this double quoted string. Fix to allow more checks.

Line 43:
done   # server
               ^-- SC1072: Expected end of double quoted string. Fix any mentioned problems and try again.
Run Code Online (Sandbox Code Playgroud)

有人可以帮忙检查一下我是否错过了什么吗?谢谢!

Ste*_*itt 6

第9行(根据ShellCheck错误):

for server in "${servers[@])"
Run Code Online (Sandbox Code Playgroud)

你有一个右括号而不是右大括号;它应该是

for server in "${servers[@]}"
Run Code Online (Sandbox Code Playgroud)