Нужно многострочный скрипт выполнить одной строкой, без использования файла скрипта. В системе мониторинга Zabbix для элемента Zabbix Agent есть ключ system.run[command]. Доступа к машине с агентом нет, поэтому скрипт туда закачать не получится.
echo -e "echo 1 \n echo 2" | bash
подготовить строку можно так: sed '/:a;N;$!ba;s/\n/\\n/g' test.sh
но еще нужно сделать экранирование кавычек двойных, если встречаются.
Несколько уточнений:
- На тестовом стенде стоит Ubuntu 22.04.1, именно эта конструкция в Zabbix не работает, если убрать -e - работает.
- Почему-то я не проверил ;, так тоже работает, но если захочется for или типа того могут быть проблемы: echo 1; echo 2;
- На Windows, на сколько мне известно, вывести многострочный текст одной командой не удастся, но разделение ; - работает.
Vitsliputsli, В самой Ubuntu все отлично, вопросов нет. Именно сам Zabbix как-то это дело по своему интерпретирует: system.run[echo -e "echo 1 \n echo 2" | bash]