ちょっと記事が長くなっちゃったので、 スペースを含む、文字列を行毎にループ処理したい場合、最終的にこう書けば良いよ。 というのを先に載せておこうと思います。 #!/bin/bash set -u # サンプルデータ (空白を含む文字列) data=$(cat <<EOT hoge 123 piyo 456 foo 789 EOT ) # read -a で、一行毎に配列に格納 while read -a arr; do echo "-----------" # ループがわかりやすいよう罫線引く echo " line: ${arr[*]}" # line echo "column1: ${arr[0]}" # カラム1 echo "column2: ${arr[1]}" # カラム2 done < <(echo "$data") # プロセス置換で入力テキストとして扱う 出力結果 ----
![スペースを含む行をループしたい。 ShellScript (bash) | tyablog.net](https://cdn-ak-scissors.b.st-hatena.com/image/square/92f3d37a2f3cbe924718462b20431b9872a64b6b/height=288;version=1;width=512/https%3A%2F%2Fi0.wp.com%2Ftyablog.net%2Fwp-content%2Fuploads%2F2018%2F03%2Fhow-to-loop-lines-containing-spaces.jpg%3Ffit%3D600%252C450%26ssl%3D1)