Данные в баш скрипт можно передавать тем же json-ом и парсить через jq
Или фронтом писать в файл, скриптом читать из файла по строкам, убрав проблемы с разными символами
Можно вообще заворачивать все base64 и передавать аргументы в скрипт уже закодировав - тоже все проблемы с символами пропадают.
Вариантов много.
Просто stdout я не могу забирать там много мусора.
Ну можно же правильный stdout сделать. В самом скрипте писать в лог файлы, а в stdout только то, что нужно для ответа серверу в том формате, который нужен серверу.
Можно в stderr писать, если нужно в терминал, а не в файл. И соответсвенно контролировать что пошло в stderr а что в stdout. Тут вообще не проблема.