Você precisa eliminar $:
read response
Eu preciso saber como pegar a saída e armazená-la em uma variável. Eu não quero enviar toda a saída para o arquivo, apenas uma das saídas de comando que estou enviando .. Basicamente
AUTH
AUTH
LIST <---needs to go to file
Eu tentei ..
read $response mas não está funcionando.
Você precisa eliminar $:
read response
nc não é expect , portanto você não tem controle sobre quais partes da saída do host remoto são capturadas. Você pode redirecionar toda a saída para um arquivo (e processar o arquivo posteriormente com awk , sed , perl ou o que for para extrair somente o que você precisa) ou enviá-lo diretamente para awk (ou qualquer outro) antes escrevendo em um arquivo ou armazenando-o em uma variável de shell (com $() de substituição de comando).
No entanto, é quase certo que seria melhor escrever seu script em perl (e usar o Expect.pm module ou Net::Telnet ou Net::IMAP ) ou em python using pexpect (ou python ' imaplib2 library), ou em algum outro idioma com uma biblioteca expect -like ou IMAP client.
Isso permite que você se conecte à porta relevante (IMAP, aparentemente) no host remoto, emita os comandos necessários, aguarde respostas e faça o que for necessário com a resposta (incluindo salvar alguns as respostas para um arquivo)
Adicionei a tag /expect à sua pergunta - clique nela para obter uma lista de perguntas e respostas relacionadas a expect neste site.