シェルスクリプトで文字列配列を扱う

配列をループして処理したい時に使える技。複数行ある場合も想定

サンプルコード

bashでもzshでも多分動きます

一行文字列の配列

スペースで区切った文字列を()で括っておくとfor inとして使えます
取り出した要素は${foo}で拾えます。配列全体は${bar[@]}で取れます。
以下のようにダブルクォートで囲っていると機能しなくなるので注意
("AAA BBB CCC")

textList=(YWFhYWEK LWFhYQogICAtIOOBguOBguOBguOBgg== LWFhYQogICAtIOOBguOBguOBguOBgg==)

for text in ${textList[@]}
do
  echo ${text}
done

出力結果

YWFhYWEK
LWFhYQogICAtIOOBguOBguOBguOBgg==
LWFhYQogICAtIOOBguOBguOBguOBgg==

複数行文字列の配列

Base64辺りでエンコードしておくと扱いが楽です

textList=(YWFhYWEK LWFhYQogICAtIOOBguOBguOBguOBgg== LWFhYQogICAtIOOBguOBguOBguOBgg==)

for text in ${textList[@]}
do
  pure=$(echo ${text} | base64 -d)
  echo "$pure"
done

出力結果

aaaaa
-aaa
   - ああああ
-aaa
   - ああああ