Мне нужно знать, как получить вывод и сохранить его в переменной. Я не хочу отправлять весь вывод в файл, только одну из команд, которые я отправляю .. В основном
AUTH
AUTH
LIST <---needs to go to file
я пробовал ..
прочитал $ response
, но он не работает.
nc
не ожидайте
, поэтому вы не можете контролировать какие части вывода удаленного хоста захватываются. Вы можете перенаправить весь вывод в файл (и обработать файл позже с помощью awk
, sed
, perl
или чего-то еще, чтобы извлечь только то, что вам нужно) или передайте его напрямую в awk
(или что-то еще) перед записью в файл или сохранением в переменной оболочки (с подстановкой команды $ ()
).
Однако вам почти наверняка будет лучше написать свой сценарий на perl
(и использовать либо модуль Expect.pm
, либо Net :: Telnet
или Net :: IMAP
) или в python
с использованием pexpect
(или библиотеки python
imaplib2
) или на другом языке с библиотекой, подобной expect
, или клиентской библиотекой IMAP.
Это позволит вам подключиться к соответствующему порту (IMAP, судя по всему) на удаленном хосте, выполнить любые команды, которые вам нужны, дождаться ответов и делать с ответом все, что вам нужно (включая сохранение некоторых из ответы на файл)
Я добавил к вашему вопросу тег / expect
- щелкните по нему, чтобы получить список вопросов и ответов, связанных с expect
, на этом сайте .