如何在bash for循环中内联字符串数组? 这个方法是行得通的:
array=(one two)
for i in ${array[*]};do echo $i; done
但我想要消除多余的本地变量。我尝试了许多看起来合理的变化,例如:
for i in ${("one" "two")[*]};do echo $i; done
或者for i in ${"one" "two"};do echo $i; done
在每种情况下,它将one
和two
视为命令 :(
如何在bash for循环中内联字符串数组? 这个方法是行得通的:
array=(one two)
for i in ${array[*]};do echo $i; done
但我想要消除多余的本地变量。我尝试了许多看起来合理的变化,例如:
for i in ${("one" "two")[*]};do echo $i; done
或者for i in ${"one" "two"};do echo $i; done
在每种情况下,它将one
和two
视为命令 :(
for i in "one" "two"; do echo "$i"; done
for i in {one,two}; do echo "$i"; done
{"some text", "test"}
中不能有空格,我才能使它工作。对于其他遇到困难的人,请确保在 {...}
内部的逗号后面没有空格。 - antshar
for i in one two; do echo $i; done
- Whymarrhfor i in "one" "two";do echo $i; done
有什么问题吗? - Genefor i in ${array[*]}
改为for i in "${array[@]}"
- 这样可以保护你的数组元素不受空格或通配符的影响。 - glenn jackman