создать тег «<текст>» часть слова обрезается. c3.js - d3.js

Обновление: используйте более простой

request_body=$(cat <<EOF
{
  "jsonrpc": "2.0",
  "method": "Player.Open",
  "params": {
    "item": {
      "file": "$FILENAME"
    }
  }
}
EOF
)

, а не то, что я объясню ниже. Однако, если это опция, используйте jq для создания JSON. Это гарантирует, что значение $FILENAME будет правильно процитировано.

request_body=$(jq -n --arg fname "$FILENAME" '
{
  jsonrpc: "2.0",
  method: "Player.Open",
  params: {item: {file: $fname}}
}'

. Сначала было бы проще определить переменную с содержимым тела запроса:

#!/bin/bash
header="Content-Type: application/json"
FILENAME="/media/file.avi"
request_body=$(< <(cat <<EOF
{
  "jsonrpc": "2.0",
  "method": "Player.Open",
  "params": {
    "item": {
      "file": "$FILENAME"
    }
  }
}
EOF
))
curl -i -X POST -H "$header" -d "$request_body" http://192.167.0.13/jsonrpc
Это определение может потребовать объяснение для понимания, но обратите внимание на два больших преимущества:
  1. Вы удаляете уровень цитирования
  2. . Вы можете легко форматировать текст для удобочитаемости.
Сначала вы имеют простую подстановку команд, которая читает из файла:
$( < ... )   # bash improvement over $( cat ... )
Вместо имени файла, однако, вы указываете подстановку процесса, в которой вывод команды используется так, как если бы она была телом файла. Команда в подстановке процесса - это просто cat, которая читается из документа здесь. Это документ, который содержит ваш запрос.

-8
задан Mr Lister 27 March 2016 в 21:01
поделиться