如何在bashshell中将一个字符串拆分为多个字符串,并至少用一个空格分隔?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (40)

我有一个包含许多单词的字符串,每个单词之间至少有一个空格。我怎样才能将字符串分成单独的单词,使得我可以遍历它们?

该字符串作为参数传递。例如${2} == "cat cat file"

提问于
用户回答回答于

你尝试只是将字符串变量传递给for循环?

sentence="This is   a sentence."
for word in $sentence
do
    echo $word
done

This
is
a
sentence.
用户回答回答于

我喜欢转换为数组,以便能够访问各个元素:

    sentence="this is a story"
    stringarray=($sentence)

现在可以直接访问各个元素(它从0开始):

    echo ${stringarray[0]}

或者转换回字符串以便循环:

    for i in "${stringarray[@]}"
    do
      :
      # do whatever on $i
    done

扫码关注云+社区