我是一般的编程新手,我的老师正在用简单的bash脚本启动我。 这就是我所做的,但它没有用。
seq 1 3 | while read a; do
echo 123
done
我做错了什么?
答案 0 :(得分:1)
如评论中所示,您要做的是每次都使用seq
的输出。
因此,使用echo "$a"
(很好引用!):
seq 1 3 | while read a; do
echo "$a"
done
顺便说一句,为了安全起见,最好使用IFS=
(输入字段分隔符)和-r
进行读取以防止出现奇怪的情况。此外,您可以通过提供间接< <(seq...)
的输入来避免管道。最后,seq 1 3
与seq 3
相同,因为1
是默认的起点。一起来:
while IFS= read -r a
do
echo "$a"
done < <(seq 3)
答案 1 :(得分:0)
echo
命令是问题所在。该示例应该看起来像
seq 1 3 | while read a; do
echo $a
done
您应该打印从echo
通过管道读取的各个序列值,而不是尝试在seq
的每次使用中打印所有序列值。