为什么我的 UNIX 基本脚本没有执行我尝试执行的操作? (如何写abc/1 abc/2 abc/3)

为什么我的 UNIX 基本脚本没有执行我尝试执行的操作? (如何写abc/1 abc/2 abc/3)

我正在做这个脚本(使用 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[@]}"

答案3

刚刚尝试过这个在线Zsh:

for i in `seq 1 3` 
do
echo "abc/$i\n"
done

得到以下信息:

abc/1

abc/2

abc/3

相关内容