你能告诉我如何迭代列表中的项目可以包含空格吗?
x=("some word", "other word", "third word")
for word in $x ; do
echo -e "$word\n"
done
Run Code Online (Sandbox Code Playgroud)
如何强制输出:
some word
other word
third word
Run Code Online (Sandbox Code Playgroud)
代替:
some
word
(...)
third
word
Run Code Online (Sandbox Code Playgroud)
要正确循环项目,您需要使用${var[@]}
.你需要引用它来确保带有空格的项目不被拆分:"${var[@]}"
.
全部一起:
x=("some word" "other word" "third word")
for word in "${x[@]}" ; do
echo -e "$word\n"
done
Run Code Online (Sandbox Code Playgroud)
或者,萨纳(感谢Charles Duffy)printf
:
x=("some word" "other word" "third word")
for word in "${x[@]}" ; do
printf '%s\n\n' "$word"
done
Run Code Online (Sandbox Code Playgroud)