используйте 'mail' для чтения почты из командной строки

11

Я знаю, что мы можем использовать mailкоманду в терминале, чтобы начать использовать mailпрограмму в интерактивном режиме.

Тем не менее, я хочу читать электронную почту с помощью mailкоманды не в интерактивном режиме.

Есть ли такая команда

$ mail -optionToReadMail -mailNumber 1;

который будет отображать содержимое электронной почты в stdout?

СФС
источник

Ответы:

17

Чтобы напечатать первое почтовое сообщение в вашем почтовом ящике по умолчанию, используйте:

echo p | mail

mailявляется интерактивным, только когда stdin является терминалом. Поскольку он mailполучает свой стандартный поток из канала, он не является интерактивным. Команда p(print) говорит ему распечатать сообщение по умолчанию (первое).

Для большего количества вариантов вы можете найти, что man mailэто очень полезно.

John1024
источник
Есть ли способ сделать это без использования трубы?
Спс
1
@SPS Конечно. Используйте здесь-строку: mail <<<p.
John1024
Есть ли способ без использования <персонажа?
Спс
2
Чтобы помочь мне ответить на этот вопрос, пожалуйста, объясните, что вы на самом деле пытаетесь достичь. Почему трубы и <нежелательны?
John1024
2
@sps В будущем поставьте все ваши условия в вопросе заранее, вместо того, чтобы добавлять их по частям после того, как на вопрос дан ответ.
chepner