![이 Bash 목록 표현식과 변수 호출이 실패하는 이유는 무엇입니까? [폐쇄]](https://linux55.com/image/97459/%EC%9D%B4%20Bash%20%EB%AA%A9%EB%A1%9D%20%ED%91%9C%ED%98%84%EC%8B%9D%EA%B3%BC%20%EB%B3%80%EC%88%98%20%ED%98%B8%EC%B6%9C%EC%9D%B4%20%EC%8B%A4%ED%8C%A8%ED%95%98%EB%8A%94%20%EC%9D%B4%EC%9C%A0%EB%8A%94%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F%20%5B%ED%8F%90%EC%87%84%5D.png)
암호
#!/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}