Как я могу передать вывод по каналу программы или функции в переменную?

Это - нечетный вопрос, не обеспечивая больше контекста... Существует инструмент под названием OfflineIMAP, который будет синхронизировать локальную иерархию Maildir с сервером. При использовании этого без каких-либо фильтров, это создаст файл для каждой электронной почты в ящике входящих сообщений на компьютере, который затем можно произвольно обработать..., это может даже синхронизировать возвращенное электронное письмо к ящику входящих сообщений затем.

Если Вы хотите использовать IMAP сами, необходимо проверить curlдокументация сначала, потому что согласно RFC IMAP

The untagged SEARCH response from the server
contains a listing of message sequence numbers corresponding to
those messages that match the searching criteria.

Так Вы это должно возвратить порядковые номера всех невидимых электронных писем. Также согласно RFC, числа последовательности сообщений должны быть заказаны, возросши с сообщением uid, который должен возрастать с порядком, в который электронные письма вводят Ваш почтовый ящик. Таким образом в теории, когда Вы отправляете a SEARCH UNSEEN Вы получили бы список идентификаторов, которые могут просто быть отсортированы к порядку, в который электронные письма ввели Ваш ящик входящих сообщений. Вы можете затем FETCH отдельные электронные письма точно теми идентификаторами.

2
09.09.2014, 08:27
1 ответ

Ты можешь сделать то, что ты сказал:

THIS_VARIABLE=$(echo foo| foobarize; printf .)
THIS_VARIABLE=${THIS_VARIABLE%.}

Это не снимет никаких зацепок с новых линий. С немного больше информации о цели, стоящей за сохранением ЭТОГО_ПЕРЕМЕННОГО и я, возможно, смогу помочь дальше.

Некоторые примеры:

$ v=$(printf '0123456789' | sed -n p; printf .)
$ printf %s "${v%?}" | wc
0       1       10

$ v=$(printf '\n\n\n\n\n\n\n\n' | sed -n p; printf .)
$ printf %s "${v%?}" | wc
8       0       8

Видите?

2
27.01.2020, 22:13

Теги

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