我有一个名为try:
radius = input("Enter circle radius:")
except (ValueError, NameError):
print "That's not a number!"
get_area(radius)
的文件。在文件中,我有从1到1000的所有数字。我有一个程序,在200轮中插入1到5。
我尝试了以下脚本:
numbers.txt
按照预期,它会在200中打印1到5的数字。
现在我需要将输出重定向到我的程序的输入。我试过这个:
while read p; do
echo $((p % 5 + 1))
done <numbers.txt
但它没有错误:
意外标记“do”
附近的语法错误
如何使用循环输入运行./my-program < while read p; do
echo $((p % 5 + 1))
done <numbers.txt
?
答案 0 :(得分:1)
./my-program < ...
- 此语法仅适用于文件,在您的情况下,您希望使用此类重定向:
while read p; do
echo $((p % 5 + 1))
done <numbers.txt | ./my-program
答案 1 :(得分:1)
您可以在Korn shell,Zsh或Bash中使用process substitution:
./my-program < <(
while read p; do
echo $((p % 5 + 1))
done <numbers.txt
)
答案 2 :(得分:1)
您可以尝试使用for循环 像
for i in `cat numbers.txt`; do
echo $[ $i % 5 + 1 ]
done