while read line
do
echo "$line"
i=0;
rm -rf b.txt
while [[ $i -lt $line ]]
do
i=`expr $i + 1`
echo "$i " >> b.txt
done
a=`cat b.txt`
for i in $a;
do
echo "Hari $i \c"
read input
done
done < 5.txt
说 5.txt 的值为:
2
3
此脚本需要将光标放在for
循环内,但脚本会不断执行和结束。你能帮帮我吗?
答案 0 :(得分:0)
假设 5.txt 包含:
2
3
脚本输出:
2
Hari 1 \c
Hari 2 \c
...然后退出。
输出Hari 1 \c
后,脚本不会提示输入,因为所有输入来自 5.txt 。在第一次传递 $ input 将设置为 3 ,( 5.txt 的第二行)。在第二次传递中,输入将是EOF,在这种情况下read
放弃,就像输出没有的方式一样:
read -p "Enter a number" n < /dev/null
这样可行:
for i in `cat 5.txt` ; do \
echo $i ; for f in `seq $i` ; do read -p "Hari $f \c: " input ; done ; \
done
另请注意,$input
从未用于任何事情。