как настроить слабую полезную нагрузку

Я пытаюсь интегрировать слабину с одним из моих сценариев оболочки. У меня разные условия, для которых часть сообщений в сообщении отличается.

Мой скрипт будет выглядеть так:

#!/bin/bash SLACK_URL='https://hooks.slack.com/services/****** CHANNEL="#channel" PAYLOAD="'payload={\"channel\": \"${SLACK_CHANNEL}\", \"username\": \"${USER}\", \"text\": \"$MESSAGE\", \"icon_emoji\": \":slack:\"}" 

Случай 1: условие:

  curl -s -S -X POST --data-urlencode "$PAYLOAD" $SLACK_URL 

Случай 2: условие

  curl -s -S -X POST --data-urlencode "$PAYLOAD" $SLACK_URL 

Случай 3: условие

  curl -s -S -X POST --data-urlencode "$PAYLOAD" $SLACK_URL 

В каждом случае Мое Послание должно быть другим. Я пытаюсь избежать объявления полезной нагрузки каждый раз с помощью специального сообщения, ища опцию, где я могу разобрать свое пользовательское сообщение на мою полезную нагрузку. Помоги пожалуйста.

  • Отправка sigaction / sigqueue через оболочку
  • Команды очереди при выполнении одной команды
  • Как получить доступ к элементу массива в оболочке?
  • Найти все размеры и ширину файлов изображений в каталоге
  • Разделение параметров
  • Перенаправление вывода петли bash в файлы, зависящие от переменных
  • Как выполнить команду во всех подпапках
  • Использовать вставку с основным вводом
  • One Solution collect form web for “как настроить слабую полезную нагрузку”

    Вы можете создать свой $PAYLOAD по частям на основе ваших условий:

     PAYLOAD="payload={" PAYLOAD="$PAYLOAD\"channel\": \"${SLACK_CHANNEL}\"," PAYLOAD="$PAYLOAD\"username\": \"${USER}\"," case $MESSAGE_TYPE in 1) PAYLOAD="$PAYLOAD \"text\": \"$MESSAGE1\"," ;; 2) PAYLOAD="$PAYLOAD \"text\": \"$MESSAGE2\"," ;; 3) PAYLOAD="$PAYLOAD \"text\": \"$MESSAGE3\"," ;; esac PAYLOAD="$PAYLOAD \"icon_emoji\": \":slack:\"" PAYLOAD="$PAYLOAD}" curl -s -S -X POST --data-urlencode "$PAYLOAD" $SLACK_URL 

    В качестве альтернативы вы могли бы Bash лениво оценить $PAYLOAD с eval только вы правильно установили $MESSAGE .

     PAYLOAD_PATTERN='payload={\"channel\": \"${SLACK_CHANNEL}\", \"username\": \"${USER}\", \"text\": \"$MESSAGE\", \"icon_emoji\": \":slack:\"}' MESSAGE=... eval "PAYLOAD=\"$PAYLOAD_PATTERN\"" curl -s -S -X POST --data-urlencode "$PAYLOAD" $SLACK_URL 

    Это общий шаблон в программировании оболочки. Обратите внимание, однако, что если какая-либо часть переменных, расширенная как часть $PAYLOAD_PATTERN включает недоверенный ввод, использование eval таким образом может привести к проблемам безопасности, поскольку противник, который имеет возможность влиять на любую часть произвольного ввода, может использовать это для получить произвольные возможности выполнения кода в системе, выполняющей скрипт.

    Linux и Unix - лучшая ОС в мире.