Выполнить две программы на отдельном экране windows с bash - PullRequest
1 голос
/ 08 февраля 2020

Я пытался создать функциональный сценарий bash, чтобы решить мою проблему, но не смог.

Проблема:

Мне нужно выполнить эти два сценария из разных терминалов (или windows, используя screen):

fluidsynth -a alsa -c 3 -g 3 /usr/share/sound/sf2/piano.sf2
aconnect 20:0 128:0

Я бы вручную запустил screen и затем выполнил первую команду ctrl+a+c и выполните вторую.

Важная часть:

Вторая команда может быть выполнена только после успешного включения программ fluidsynth и должна быть запустить из другого терминала.

Моя попытка до сих пор:

screen -S fluid /usr/midi/fluid.sh & sleep 10 aconnect 20:0 128:0

Жидкость. sh Файл:

fluidsynth -a alsa -c 3 -g 3 /usr/share/sound/sf2/piano.sf2

Может кто-нибудь укажет, что я здесь делаю не так?

1 Ответ

1 голос
/ 09 февраля 2020

Простой ответ будет таким:

screen -d -m -S fluid fluidsynth -a alsa -c 3 -g 3 /usr/share/sound/sf2/piano.sf2
screen -d -m -S connect bash -c "sleep 10; aconnect 20:0 128:0"

-d -m указывает на запуск экрана в отдельном режиме.

Если у вас есть способ обнаружить включение питания Fluidsynth, например, есть файл, который должно быть там, вы можете заменить sleep 10 на циклы, которые делают sleep 1, пока файл не существует.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...