我有以下脚本:
#!/bin/sh
fruits="apple \"orange juice\" banana"
IFS=" " read -a words <<< "$fruits"
for word in "${words[@]}"
do
echo "Word: $word"
done
产生以下结果:
Word: apple
Word: "orange
Word: juice"
Word: banana
它将句子“橙汁”分成两个单词。我想实现以下输出:
Word: apple
Word: orange juice
Word: banana
但是我无法让它按我想要的方式工作。这里有什么问题吗?
以下内容按预期工作:
#!/bin/sh
for word in apple "orange juice" banana
do
echo "Word: $word"
done
所以我期待用
"${words[@]}"
进行数组扩展可以达到目的,但它不起作用。任何想法?谢谢!
这可能有帮助:
fruits='apple"orange juice"banana'
IFS='"' words=($fruits)
for word in "${words[@]}"; do
echo "Word: $word";
done
输出:
词语:苹果 词语: 橙汁 词语: 香蕉