이 Bash 목록 표현식과 변수 호출이 실패하는 이유는 무엇입니까? [폐쇄]

이 Bash 목록 표현식과 변수 호출이 실패하는 이유는 무엇입니까? [폐쇄]

암호

#!/bin/bash
startTimes=$(seq 300 10 330)
for startTime in ${startTimes[@]};
do
        endTime=${startTime}+10
        echo ${endTime} > /tmp/111test # Output literally: startTimes+10 
done
echo "Last endTime: "${endTime}

으로 출력bash -x ...

++ seq 300 10 330
+ startTimes='300
310
320
330'
+ for startTime in '${startTimes[@]}'
+ endTime=300+10
+ echo 300+10
+ for startTime in '${startTimes[@]}'
+ endTime=310+10
+ echo 310+10
+ for startTime in '${startTimes[@]}'
+ endTime=320+10
+ echo 320+10
+ for startTime in '${startTimes[@]}'
+ endTime=330+10
+ echo 330+10
+ echo 'Last endTime: 330+10'
Last endTime: 330+10

예상 출력

310
320
330
340

운영 체제: Debian 8.5
Linux 커널: 4.6 backsports

답변1

의견에 있는 don_crissti의 답변은 출력과 함께 사용해야 하는 startTimes선언 및 사용의 두 가지 오류를 지적합니다.${var[@]}seq

startTimes=( $(seq 300 10 330) )

for startTime in "${startTimes[@]}";
do
        endTime=$(( ${startTime}+10 ))
        echo ${endTime} > /tmp/111test 
done

echo "Last endTime: "${endTime}

관련 정보