Скрипт Bash для входа по SSH

#bash #rtx

#bash #rtx

Вопрос:

Извините, если это кажется глупым вопросом, но я только изучаю сценарии 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:

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

смотрите руководство по Bash в подкоманде coproc

Прошло некоторое время с тех пор, как я это делал, и я потерял свои примеры, но что-то вроде

 coproc RTX ./main

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

Комментарии:

1. хах. прошло некоторое время, но это довольно недавнее дополнение к bash 🙂 (4 IIRC)

2. В моем возрасте довольно долго — несколько месяцев, а потом я забываю, что я делал