久しぶりにbashの配列を扱おうとして、??となったので、その備忘録。
改行で区切れば、配列を使わなくても、for文で回せる!
いつもは、こんな感じで、for文でまわしてた
#!/bin/bash text=' aaa bbb ccc ' for i in ${text}; do echo $i done
でも、2つのリストにある文字列を同じインデックスで扱いたいときには、配列にしないといけない。。。
でも、2つのリストを扱いたくなって、困った。
やりかたはこんな感じ。
#!/bin/bash text=' aaa bbb ccc ' text2=' AAA BBB CCC ' ## 配列に変換 array_text=(`echo $text`) array_text2=(`echo $text2`) ## for文でくるくるする for (( i = 0; i < ${#array_text[@]}; ++i )); do t1=${array_text[$i]} t2=${array_text2[$i]} echo "### $t1 -> $t2" done
- 改行で区切った文字列を
cat
すると配列にできる ${#<変数名>[@]
で配列のサイズを参照できる- インデックスを使った配列要素の参照は
${<変数名>[<インデックス>]}
もっとスマートな書き方もあると思いますが、とりあえず、目的を達成したのでおしまい!
以上!!
【宣伝】複数言語へ一括翻訳できる文章・単語の管理アプリ『トランスノート』をリリースしました!
トランスノート|https://trans-notes.net/:plain
アプリやサービスの多言語対応をサポートしてくれるWebサービスです。
メッセージごとにIDをつけれるので、メッセージ一覧の作成・管理に利用できて、
AndoridのXML形式とか、ファイルをそのまま配置できるとこまでやってくれます。
詳しい内容はこちらの記事で。 wannabe-jellyfish.hatenablog.com