Bash 스크립트-중괄호 안의 변수 [중복]
Nov 13 2020
다음 bash 스크립트
#!/bin/bash
startNumber=$(( 1 )) endNumber=$(( $startNumber + 3 )) #for number in {$startNumber..$endNumber} for number in {1..4} do echo $number
done
exit 0
원하는 출력을 제공합니다
1
2
3
4
그러나 주석 처리되지 않고 주석 처리 된 for 루프를 전환하면 출력은 다음과 같습니다.
{1..4}
내가 도대체 뭘 잘못하고있는 겁니까?
답변
8 jesse_b Nov 13 2020 at 13:22
변수는 중괄호 확장 내부에서 확장되지 않습니다 . 다음과 같이 할 수 있습니다.
for ((number=startNumber; number<=endNumber; number++)); do
echo "$number"
done
또한, 사용하는 이유가 없다 산술 확장을 위해 startNumber
당신은 단순히해야 할이 :
startNumber=1
.
또한 $
산술 확장 내에서 변수를 확장하는 데 사용할 필요 endNumber
가 없으므로 다음과 같을 수 있습니다.endNumber=$((startNumber+3))
8 bxm Nov 13 2020 at 13:32
다른 곳에서 설명했듯이 확장은 작동하지 않습니다. 숫자 시퀀스를 얻는 다른 방법 :
for number in $(seq $startNumber $endNumber) do echo $number
done