Сценарий Bash для ожидания части процесса

В этом вопросе приведено несколько способов дампа страницы man. Они также обсуждают, что страницы man имеют специальное форматирование - то, которое может быть интерпретировано эмулятором терминала.

По сути, man page - это groff документ, поэтому он содержит забавные символы, которые man интерпретирует как форматирование.

Использование man на двух разных эмуляторах терминала может дать разные результаты - именно это и произошло с вами. К сожалению, вы мало что можете сделать с его поведением - оно ограничено вашим эмулятором терминала.

0
11.03.2018, 14:57
1 ответ

Я пока не могу комментировать, поэтому публикую его как ответ, хотя и неполный, поскольку OP не опубликовал достаточно данных.

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

#!/usr/bin/expect
expect "Prompt: "
send "my input\r"
expect eof

\rозначаетreturn(я думаю ), просто введите клавишу .

Так, например, expectскрипт для вашей программы может выглядеть так:

#!/usr/bin/expect
expect "Provide 1: "
send "1\r

expect "Provide filename: "
send "foobar.txt\r"

expect "Provide 5: "
send "5\r"
# and so on...
expect eof

Пожалуйста, предоставьте код, который у вас есть, и примеры запросов вывода из вашей программы "x", чтобы мы могли адаптировать ответ к вашим потребностям.

1
28.01.2020, 02:43

Теги

Похожие вопросы