2011-06-11 139 views
2

我有一個shell腳本。在shell腳本中重定向輸出

下面說,在腳本test.sh是THW 2個prcoess我通過腳本

啓動

1.echo執行Test.sh開始

2.java過程1>的/ dev/null的

3。的java過程2>的/ dev/null的

4.echo執行Test.sh完成

5.exit

現在,如果我運行test.sh,說process1正在運行,並且process2將基於某些條件殺死process1,所以當它殺死進程1時,它會輸出,我要重定向這個輸出。

現在輸出 執行Test.sh開始

test.sh行:2殺PID java的過程1>的/ dev/null的

執行Test.sh完成

我希望它看起來如下所示,所以如何重定向它。

執行Test.sh開始

執行Test.sh完成

我希望我在我的問題取景清晰現在

+1

...... W h a t? – 2011-06-11 07:55:24

+0

你的意思是process1會重啓? – dimba 2011-06-11 07:58:34

+0

檢查我的新答案 – 2011-06-11 08:01:22

回答

2

你有沒有考慮重定向錯誤流

java的過程1>/dev/null 2>/dev/null

java process2>/dev/null 2>/dev/null

編輯:
我想你問的是如何重定向bas​​h shell的輸出。使用以下命令:

bash > output.txt 
java process1 > /dev/null 
java process2 > /dev/null 
exit 

編輯2:
好像只有一個醜陋的方式做到這一點,這可能無法滿足您的需求。

bash > output.txt 
java process1 > output1 
java process2 > output2 
exit 
cat output1 
cat output2 
rm output1 output2 

編輯3:
似乎有可能是另一種方式。嘗試其他可能無法打印進程號的shell在被殺死時。

+0

回聲輸出必須到來,只有死亡的輸出不應該來,不知道如何重定向? – 2011-06-11 08:12:23

+0

這是一個很好的答案,但是我不能使用,因爲回聲消息必須在shell控制檯上顯示,然後纔有! – 2011-06-11 08:35:12