Bash с помощью netcat, отправьте вывод одной команды в файл

Мне нужно знать, как получить вывод и сохранить его в переменной. Я не хочу отправлять весь вывод в файл, только одну из команд, которые я отправляю .. В основном

AUTH
AUTH
LIST  <---needs to go to file

я пробовал .. прочитал $ response , но он не работает.

0
14.03.2016, 11:35
2 ответа

nc не ожидайте , поэтому вы не можете контролировать какие части вывода удаленного хоста захватываются. Вы можете перенаправить весь вывод в файл (и обработать файл позже с помощью awk , sed , perl или чего-то еще, чтобы извлечь только то, что вам нужно) или передайте его напрямую в awk (или что-то еще) перед записью в файл или сохранением в переменной оболочки (с подстановкой команды $ () ).

Однако вам почти наверняка будет лучше написать свой сценарий на perl (и использовать либо модуль Expect.pm , либо Net :: Telnet или Net :: IMAP ) или в python с использованием pexpect (или библиотеки python imaplib2 ) или на другом языке с библиотекой, подобной expect , или клиентской библиотекой IMAP.

Это позволит вам подключиться к соответствующему порту (IMAP, судя по всему) на удаленном хосте, выполнить любые команды, которые вам нужны, дождаться ответов и делать с ответом все, что вам нужно (включая сохранение некоторых из ответы на файл)

Я добавил к вашему вопросу тег / expect - щелкните по нему, чтобы получить список вопросов и ответов, связанных с expect , на этом сайте .

0
28.01.2020, 02:48

Вы должны исключить $:

read response
1
28.01.2020, 02:48

Теги

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