Bash скрипт для входа через SSH - PullRequest
2 голосов
/ 12 ноября 2011

Извините, если это кажется глупым вопросом, но я только изучаю bash-скриптинг.Для школьного проекта нам нужно кодировать RTX, который работает в Unix.Он запускается как процесс в терминале и принимает пользовательский ввод, а затем выводит его на экран.Я хочу написать bash-скрипт для проверки того, что он может реагировать на множество быстрых пользовательских вводов без переполнения или сбоев.

Моя главная проблема заключается в том, что после запуска RTX скрипт bash останавливается на этой строке до тех пор, пока RTXзавершается и только затем печатает цикл в терминал (вместо того, чтобы печатать его в приглашении RTX, как я намереваюсь).

Я попытался запустить RTX в фоновом режиме, но это не сработало.Мне нужно найти способ перенаправить ввод в RTX, пока он еще работает с помощью скрипта 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 Ответ

1 голос
/ 12 ноября 2011

Вы можете запускать совместные процессы в bash, а затем отправлять команды в совместный процесс по каналу.

см. Руководство по Bash под подкомандой coproc

Уже давносделал это, и я потерял свои примеры, но что-то вроде

coproc RTX ./main

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