Если вы запускаете брокера (с mosquitto
), подпишитесь на тему my/test
с
mosquitto_sub -t my/test -v
Затем вы можете опубликовать простые сообщения и посмотреть, что вы получите. Например,
mosquitto_pub -t my/test -m inline
будет отображаться в выводе подписки в виде одной строки
my/test inline
Если все ваши сообщения относятся к этому типу, вы должны просто сделать цикл для вызова вашей функции:
... | pipeTee | while testPipe; do : ; done
, но ваша функция не может использовать cat
, иначе она никогда не вернется. Если вы хотите отправлять многострочные сообщения, вам нужно будет заменить cat
на чтение внутри другого цикла while, который каким-то образом определяет конец сообщения. Например, если вы публикуете с
echo -e 'my multi\nline test' | mosquitto_pub -t my/test -s
вы увидите 3 строки:
my/test my multi
line test
<there is a blank line here>
Пустая строка связана с тем, что echo
добавляет \n
к строке. Затем вам нужно будет заменить cat
на что-то вроде
while read data && [ "$data" != "" ]
do echo "Got $data"
done
Поскольку вы контролируете, что вы публикуете, вы можете предпочесть отправлять отдельные строки данных или заканчивать сообщения специальной строкой, которую вы можете легко найти, например ===eof===
.
Вы можете использовать инструментinfo2pod
info2man
для преобразования информационных страниц в справочные страницы. См. пакет Debian для получения исправлений, позволяющих info2man
работать с Perl 5.