文字列リストを介したbashループ

文字列リストを介したbashループ

この例の書式を指定できますか?

for i in string1 string2 stringN
do
 echo $i
done

このような:

for i in 
string1
string2
stringN
do
 echo $i
done

編集:混乱させて申し訳ありません。スクリプトを実行する他の方法があることを知りませんでした。 sh<scriptname>bash <scriptname>今では名前を付けることができない他の方法があります。#!/bin/sh:)#!/bin/bash

答え1

Bashで配列を使用すると、読みやすさが向上します。この配列構文は、単語間の任意のスペースを許可します。

strings=(
    string1
    string2
    "string with spaces"
    stringN
)
for i in "${strings[@]}"; do
    echo "$i"
done

答え2

バックスラッシュを使用して改行をエスケープできます。

$ for i in \
> hello \
> world
> do
> echo $i
> done
hello
world
$

答え3

list='a b c d'
for element in $list;do 
    echo "$element"
done

答え4

次に切り替えるオプションが提供されている場合zsh

for string (
  string1
  'other string'
  etc..
) printf '%s\n' "$string"

関連情報