Bashスクリプト - 中括弧内の変数

Bashスクリプト - 中括弧内の変数

Next 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ループとコメントアウトされたforループを切り替えると、出力は次のようになります。

{1..4}

私は何が間違っていましたか?

ベストアンサー1

変数は内部的に拡張されません。支柱の拡張。次のことができます。

for ((number=startNumber; number<=endNumber; number++)); do
    echo "$number"
done

また、使用する理由はありません。算術拡張なぜならstartNumber、あなたは単に以下を行う必要があるからです
startNumber=1

$また、変数を拡張するために算術拡張に使用する必要がないため、endNumber次のようになります。
endNumber=$((startNumber+3))

おすすめ記事