2015-02-11 61 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命令