Назад | Перейти на главную страницу

Bash запускает программу и многократно передает ей данные

Мне нужно написать сценарий bash для запуска программы, а затем каждые 5 секунд передавать данные в эту программу. Программа принимает ввод командной строки, а затем возвращает некоторые данные. У меня сейчас есть

./a &
while true
do
  echo "input 1"
  echo "input 2"
  sleep 5
done

Но это не то, что мне нужно. Данные, передаваемые каждый раз, будут одинаковыми, и программу нельзя будет перезапустить. Как мне это сделать? Заранее спасибо.

Не могу вас правильно понять:

some_program.sh:

#!/bin/bash

if [ "$1" == 1 ]; then
echo equals 1
  else
echo not equals 1
fi

run_script.sh

#/bin/bash

while true
do 
./some_program.sh 1
./some_program.sh 2
sleep 5
done

Или вам нужно запустить программу в фоновом режиме, а затем передать данные?

Как это:

#!/bin/bash

Param1=*.txt

while true
do
  Output=`ls -1 ${Param1}`
  echo "Output: ${Output}"  
  sleep 5
done

?