Задать вопрос
@kyctaphik

Как запустить несколько команд в bash вместе, но не дожидаясь ответа?

Здравствуйте, извиняюсь за корявый вопрос, нужно работать с движком stockfish через uci, bash скрипт.
Мне нужно ввести поочерёдно команды в консоль, сперва:
stockfish
Stockfish 11 64 by T. Romstad, M. Costalba, J. Kiiski, G. Linscott
такой ответ следует и курсор замирает, далее мне надо ввести команду
uci
Ответ должен быть uciok и т.д
как написать это на bash? пробовал stockfish & uci тогда пишет неизвестная команда uci. также пробовал stockfish; uci тогда выполняется только первая, а вторая ждёт завершения, а его не следует, помогите, пожалуйста решить вопрос!
  • Вопрос задан
  • 392 просмотра
Подписаться 2 Простой Комментировать
Решения вопроса 3
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Используйте expect для автоматизации.
Ответ написан
Комментировать
@AUser0
Чем больше знаю, тем лучше понимаю, как мало знаю.
Вариант echo -ne "uci\n" |stockfish не работает?
Ответ написан
saboteur_kiev
@saboteur_kiev Куратор тега bash
software engineer
Проблема в том, что вы не понимаете сути команд.
У вас не запуск нескольких команд в баше, а запуск конкретной программы, а затем выполнение команд уже не в баше, а в этой программе. Баш тут уже не причем.

Тут нужно разобраьтся как работает ваша программа. Если она просто ждет ввода пользователя, можно взять, написать список команд (каждая команда в новой строке) в отдельный текстовый файлик и перенаправить его в вашу программу, тогда она будет думать что это пользователь очень быстро все вводит.
вот как пример echo -ne "uci\n" |stockfish
то есть перенаправляем команду в команду, словно ее ввел пользователь.

Если нужно проверять результат вывода, это уже отдельный вариант. Но нужно уточнить как stockfish себя ведет, если можно выполнить одну команду в stockfish и выйти, то можно как-то так

result="$( echo -ne "uci\nexit\n" | stockfish)"
echo "result is [$result]"
ну и проверять.

Короче тут нужно с самим stockfish разобраться.Или изучить как работает expect
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
milanick
@milanick
Попробуй написать не " stockfish & uci", а "stockfish && uci"
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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