2011-11-12 163 views
2

對不起,如果這看起來像一個愚蠢的問題,但我只是學習bash腳本。對於學校項目,我們需要編寫一個在Unix中運行的RTX。它作爲終端中的一個進程運行並接受用戶輸入,然後將其打印到屏幕上。我想寫一個bash腳本來測試它可以響應大量的快速用戶輸入而不會溢出或失敗。Bash腳本通過SSH登錄

我的主要問題是,一旦RTX啓動,bash腳本將停止在該行,直到RTX終止,然後纔打印到終端的循環(而不是打印到RTX提示符,因爲我打算它)。

我曾嘗試在後臺運行RTX,但沒有奏效。我需要找到一種將輸入重定向到RTX的方式,同時它還在使用bash腳本運行。谷歌搜索沒有提供我瞭解/可以適應的例子。任何幫助表示讚賞。

#!/bin/bash 
# declare STRING variable 
STRING="RTX Worked =D" 
#Start the rtx in a new process, stuck on this line until rtx terminates. 
./main 
#Somehow redirect io to the rtx. 
    for i in `seq 1 100`; 
    do 
      echo $i 
    echo " \n" 
    done  
echo $STRING 

回答

1

您可以在bash中運行協同進程,然後通過管道將命令發送到協同進程。

看到coproc下Bash的手冊子命令

它已經有一段時間,因爲我做到了,我失去了我的例子,但像

coproc RTX ./main 

for i in 'seq 1 100`; 
do 
    echo $i >&{RTX[1]} 
done 
+0

哈。它已經有一段時間了,但它是最近除了bash :)(4+ IIRC) – sehe

+0

在我這個年齡段,相當一段時間是幾個月,然後我忘記了我做了什麼 – akc42