2012-02-21 20 views
1

我正在屏幕會話中運行一個minecraft服務器。我也使用命名管道爲了從其他腳本發送命令到Minecraft服務器。來自2個來源的程序輸入?

我可以在屏幕會話中看到服務器的輸出,但是我無法輸入任何內容。無論如何,我期待這一點,因爲我正在從命名管道輸入信息。

這是我跑開始一切行:

screen -S minecraft sh startup.sh 

這裏的startup.sh:

#!/bin/bash 
rm mct 
if [ ! -p mct ]; then 
    mkfifo mct && chmod 0777 mct 
fi 

tail -f mct | java -Xincgc -Xmx2048M -jar minecraft_server.jar 

我希望能夠從屏幕會話,並從命名管道輸入命令。有什麼辦法可以完成這個嗎?我現在只是在討論bash腳本,今天一直在學習很多東西。我似乎無法如何做到這一點。

+0

你有沒有考慮呼應到FIFO? – 2012-02-21 00:04:38

+0

@ IgnacioVazquez-Abrams這就是我正在做的從外部腳本執行命令,我試圖從服務器的屏幕會話(它發送輸出)執行以及命令。 – 2012-02-21 00:08:43

回答

2

一種方法是運行tail -f mct同時與從控制檯讀取和寫入同一個匿名管道命令:

(tail -f mct & cat) | java -Xincgc -Xmx2048M -jar minecraft_server.jar 
+0

這正是我一直在尋找的!謝謝! – 2012-02-21 00:07:47

+0

@SteveR:不客氣! – ruakh 2012-02-21 00:09:38