我正在做这个脚本(使用 zsh,但我想这不是很重要):
mylist=`seq 1 3`
for i in $mylist ; do echo "abc/$i" ; done
这给出:
abc/1
2
3
虽然我想看到:
abc/1
abc/2
abc/3
非常感谢有人可能会发现它不起作用/如何做的原因。
答案1
你可以保持简单:
for i in 1 2 3; do echo "abc/$i" ; done
或者
for i in $(seq 1 3); echo "abc/$i"
输出:
abc/1
abc/2
abc/3
答案2
做这种事情的另一种方法是通过大括号扩展:
echo abc/{1..3}
但自然地,既然你要求换行,你就需要这样做:
abc_strings=( abc/{1..3} )
printf "%s\n" "${abc_strings[@]}"