2015-02-11 60 views
0

我必须用bc命令写一个脚本,并且这样做时我应该退出bc而不需要用户的任何输入。所以基本上这个程序在使用bc之后仍然会运行,而不需要等待用户的输入,就像我的程序正在做的那样。下面是代码:在UNIX脚本中退出bc

cd /class/cm325d/06/dASG5 

egrep 'James|Biel|Singlof|Hall|Lele|Kanter|Helms|Sahara|Jerrod|Dixon' asg5f1 > asg5f1c 
sed 's/ /:/g' asg5f1c > t1 
sed 's/$/:/g' t1 > asg5f1c 
sort asg5f1c > t2 
sort asg5f2 > t3 
join t2 t3 > asg51 
cut -d':' -f6 asg51 > gp 
cut -d':' -f7 asg51 > np 
sed 's/^/z=z+/' gp > gpay 
sed 's/^/z=z+/' np > npay 
echo "z" >> gpay 
echo "z" >> npay 
bc -q gpay > tgpay 
bc -q npay > tnpay 
exit 
paste tgpay tnpay > totals 

退出显然没有工作,但我想不出做什么我抬头一看网上说,它要么退出或退出。我尝试了两个都没有。任何帮助,将不胜感激。谢谢。

回答

1

你可以做的只是echo quit | bc -q gpay > tgpay,这几乎就像从键盘输入“退出”一样。

作为另一种选择,您可以编写bc <gpay> tgpay,将gpay的内容传递给stdin,在非交互模式下运行bc

+0

我试图把代码中仍然等待用户输入。我想我应该提到我正在使用ksh – 2015-02-11 19:24:28

+0

这两个构造都与mksh(这是我可以安装的最接近ksh的shell)一起工作。但是,它可能取决于您的文件内容和您使用的bc版本。 – 2015-02-11 19:27:54

+0

好吧,得到它我解释你的代码错了,它的工作表示感谢 – 2015-02-11 19:39:23

-1

按ctrl + d将会退出程序。

你也可以使用Ctrl +则C使用quit命令