2017-05-04 72 views
-3

對不起,這是一個非常簡單的問題,我如何從shell腳本打印0?我的程序正在做一個數字的scanf,我想要腳本輸入0.如何使用bash打印shell腳本的數字?

我試過echo 0,它似乎沒有工作。

#!/bin/bash 
make clean 
ls -l 
cat udpserver.c 
make 
ls -l 
./udpserver 
sleep 2 
echo 0 | udpserver 
sleep 2 
echo 0 | udpserver 
+1

的可能的複製[發送字符串標準輸入(http://stackoverflow.com/questions/6541109/send-string-to-stdin) –

+0

@BenjaminW。看到他編輯的問題,這不像重複一樣簡單。 – Barmar

+0

Don'ät垃圾標籤。這與C無關。 – Olaf

回答

3

您不能使用管道將輸入發送到之前啓動的程序,您必須在啓動程序時使用它。如果你想對它傳遞多個命令,把它們放在一個子shell中。

(sleep 2; echo 0; sleep 2; echo 0) | ./udpserver 
+0

或'(echo line1; echo line2)| yourProg'或'printf「line1 \ nline2 \ n」| yourProg' - 可能性幾乎是無止境的:-) – paxdiablo

+0

@paxdiablo我沒有提到,因爲我說使用here-doc最適合多行。 – Barmar

+0

我不明白,我在哪裏錯了?下面是我的腳本: – sublimesummer