Deprecated: Array and string offset access syntax with curly braces is deprecated in /mnt/hep_web/hep_web/member/n-kota/dokuwiki/inc/init.php on line 542
ja:bash:wanttodo7 [GiriWiki]

ユーザ用ツール

サイト用ツール


ja:bash:wanttodo7

変数を使って連番を生成

例えば1から10までの連番を生成してループを回したい時、

for i in {1..10}
do ...

の様にして連番生成、ループ処理を行うことができるが、この範囲を変数として

Start=1
End=10
for i in {${Start}..${End}}
do ...

としてもiに{1..10}という文字列が格納されるだけで、展開されて連番を生成してくれない。

こんな時は、以下の様に“eval echo ” を使う。

Start=1
End=10
for i in `eval echo {${Start}..${End}}`
do ...

これで、先のように1から10までの連番が生成される。

配列要素数でループを回す

array=("a" "b" "c")
Narray=$(( ${#array[*]} - 1 ))
for i in `eval echo {0..${Narray}}`
do
    echo ${i} ${array[${i}]}
done
ja/bash/wanttodo7.txt · 最終更新: 2018/04/12 07:40 by kota