像这样的东西:
for i in a1 'a2 a3'
do
echo ${i}
done
Run Code Online (Sandbox Code Playgroud)
我的理解是正确的:
a1
a2 a3
Run Code Online (Sandbox Code Playgroud)
虽然通过放入a1 'a2 a3'变量我无法让它工作
VAR="a1 'a2 a3'"
for i in ${VAR}
do
echo ${i}
done
Run Code Online (Sandbox Code Playgroud)
在声明中如何声明VAR或使用它for?
使用正确的数组:
\narr=( a1 \'a2 a3\' )\n\nfor a in "${arr[@]}"; do\n echo "$a"\ndone\nRun Code Online (Sandbox Code Playgroud)\n检查如何在变量 \xc2\xb9 周围添加双引号
\n数组将数字映射到字符串。Bash >= 4 也有关联数组(将字符串映射到字符串)。
\n http://mywiki.wooledge.org/BashSheet#Arrays
\n http://mywiki.wooledge.org/BashFAQ/005
\n http://wiki.bash-hackers.org/syntax/arrays
\xc2\xb9 学习如何在 shell 中正确引用,这非常重要:
\n\n\n“双引号”包含空格/元字符的每个文字和每个扩展:
\n"$var","$(command "$var")","${array[@]}","a & b"。用于\'single quotes\'代码或文字$\'s: \'Costs $5 US\',ssh host \'echo "$HOSTNAME"\'. 请参阅
\n http://mywiki.wooledge.org/Quotes
\n http://mywiki.wooledge.org/Arguments
\n https://web.archive.org/web/20230224010517/https://wiki.bash -hackers.org/syntax/words
\n https://unix.stackexchange.com/questions/68694/when-is-double-quoting-necessary