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"

相关内容