2

抱歉,这似乎是一个愚蠢的问题,但我只是在学习 bash 脚本。对于一个学校项目,我们需要编写一个在 Unix 中运行的 RTX。它在终端中作为进程运行并接受用户输入,然后将其打印到屏幕上。我想编写一个 bash 脚本来测试它是否可以响应大量快速用户输入而不会溢出或失败。

我的主要问题是,一旦 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
4

1 回答 1

1

您可以在 bash 中运行协同进程,然后通过管道向协同进程发送命令。

请参阅 coproc 子命令下的 Bash 手册

自从我这样做以来已经有一段时间了,我已经失去了我的例子,但是像

coproc RTX ./main

for i in 'seq 1 100`;
do
     echo $i >&{RTX[1]}
done
于 2011-11-12T11:40:45.273 回答