내 코드에 어떤 문제가 있는지 파악하는 데 도움이 필요합니다. 코드는 아래와 같이 표시됩니다.
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
내 Bash 터미널이 오류를 반환합니다.
./rename.sh: line 41: unexpected EOF while looking for matching `"'
./rename.sh: line 52: syntax error: unexpected end of file
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.
내가 뭔가 빠졌는지 확인하는 데 도움을 줄 수 있는 사람이 있나요? 감사해요!
답변1
9행(ShellCheck 오류에 따름):
for server in "${servers[@])"
닫는 중괄호 대신 닫는 괄호가 있어야 합니다.
for server in "${servers[@]}"