2011-11-12 25 views
2

申し訳ありません、これはばかげた質問のようですが、私はbashスクリプトを学んでいます。学校のプロジェクトでは、Unixで動作するRTXをコーディングする必要があります。ターミナルのプロセスとして実行され、ユーザーの入力を受け取り、それを画面に出力します。私は、それがオーバーフローまたは失敗することなく、迅速なユーザー入力の多くに対応できることをテストするためのbashスクリプトを書いています。SSH経由でログインするBashスクリプト

私の主な問題は、RTXが起動すると、RTXが終了するまでbashスクリプトが停止し、ループをターミナルに印刷することです(RTXプロン​​プトに出力するのではなく)。

RTXをバックグラウンドで実行しようとしましたが、動作しませんでした。 RTFに入力をリダイレクトする方法を見つけ出す必要がありますが、それはまだbashスクリプトで実行されています。 Googleの検索では、私が理解した/適用できる例がなかった。どんな助けもありがとうございます。

#!/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