Мой вопрос в основном основан на этом:
отправка своевременных команд в ssh
У меня следующий вопрос, и я могу подключиться к серверу, например:
mkfifo CMDs.txt
exec 7> CMDs.txt
затем с другого терминала я подключаюсь к серверу следующим образом:
sshpass -p 'mypass' ssh -tt myuser@${IP} < CMDs.txt
сеанс устанавливается, но это не интерактивный сеанс (как и должно быть). Но я могу отправлять команды на удаленный сервер, перенаправляя их на дескриптор файла 7, например:
echo "some command" >&7
echo "some more command" >&7
это работает нормально и показывает вывод в другом терминале, на котором я инициировал сеанс. Моя цель - отправлять команды и записывать выходные данные каждой команды в переменную, чтобы я мог проанализировать ее перед отправкой другой команды. Я думаю, что это может быть возможно, читая стандартный вывод, но я не могу понять это, поэтому отправляю вопрос. Я могу захватить вывод в файл, перенаправив его в файл, подобный этому:
sshpass -p 'mypass' ssh -tt myuser@${IP} < CMDs.txt >>outfile.txt
также, как упоминалось в справочном вопросе, exec 7>&-
должен завершить сеанс, но этого не произошло, так как же завершить сеанс после того, как я отправлю все свои команды?