Я пытаюсь передать стандартный поток вывода из сценария в сценарий bash, который отправляет POST с информацией curl.
Вот как выглядит команда:
rtl_fm -g 100 -d 3 -s 22050 -f ${pager_freq} - | multimon-ng -q -f alpha -a POCSAG512 -t raw - | tee page-upload.sh
Когда я просто передаю скрипту текст, который похож на вывод, скрипт работает как положено:
echo "POCSAG512: Address: 1210001 Function: 0 Alpha: P121 TO REPLACE UNIT P116<LF>IN STATION 116<LF>6825 TOMKEN RD<LF>2017/09/11 17:23:50<EOT>"|page-upload.sh
Я попытался сделать curl сразу после эхо или внутри скриптов bash и даже php, но по какой-то причине не радости.
Какие-нибудь мысли?
Вы используете tee
неправильный путь. tee
пишет в файл, он не вызывает скрипт. Может быть, вы имеете в виду что-то вроде этого
rtl_fm -g 100 -d 3 -s 22050 -f ${pager_freq} - | multimon-ng -q -f alpha -a POCSAG512 -t raw - | tee upload.log | page-upload.sh
Мне удалось выяснить, что проблема была связана с тем, как приложение multimon-ng выводило стандартный вывод. Не вдаваясь в сорняки, вот как я это исправил в своем скрипте bash, вставив оператор while:
пока читаешь сообщение
делать
локон https://www.example.com/text_reciever.php -X POST —data-urlencode «$ message» выполнено