bash, sh, zsh での for each
のやり方です。 bash, sh, zsh に for each
というのはありませんが、リスト内の要素すべてについて順次処理をするループとして for each
と表記しています。
sh と bash
sh と bash では次のようにします。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
list="abc def ghi" for v in $list; do echo $v echo "/" done # = OUTPUT = # abc # / # def # / # ghq # / |
sh, bash ではスペースで文字列が分割されましたが、 同じコードを zsh で実行しても同じ結果は得られません。 元の文字列は分割されず、ひとつの長い文字列が表示されます。
bash
zsh の場合は下のようにリストを作ってループします。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
list=("abc" "def" "ghi") for v in $list; do echo $v echo "/" done # = OUTPUT = # abc # / # def # / # ghq # / |
zsh の方が Ruby や PHP などの LL に似ていますね。