Получение переменной с веб-сайта, которая затем сохраняется - PullRequest
0 голосов
/ 01 октября 2019

Мне нужно получить переменную "message" с веб-сайта и сохранить ее в переменной.

Я новичок в сценарии оболочки, поэтому я не уверен, как это сделать. Некоторое время я пробовал разные способы, но, похоже, они не работают.

Это вывод веб-сайта example.web: 8080 / rest / message

[{"id":33,"message":"Dash","lastUpdated":1569922857154,"userName":null}]

#!/bin/bash
message=$( curl -# -L "http://example.web:8080/rest/message}")

username=$(
  <<< "${message}" \
  grep -P -o -e '(?<=<li>message: <strong>)(.*?)(?=<\/strong><\/li>)' |
  head -n 1
)

Мне нужно сообщениепеременная "Тире" Для сохранения, которая может быть принтером позже.

1 Ответ

0 голосов
/ 01 октября 2019

Хотя я не уверен, что вывод, который вы получаете - чистый json или нет, если вы в порядке с awk, не могли бы вы попробовать следующее (Если у вас правильный json, тогда, пожалуйста, используйте jq или парсер, который специально сделан для jsonпарсинг).

Your_command | awk -v s1="\"" '
match($0,s1 "message" s1 ":" s1 "[^\"]*"){
  num=split(substr($0,RSTART,RLENGTH),array,"\"")
  print array[num]
}'

РЕДАКТИРОВАТЬ: Если у вас есть инструмент jq, не могли бы вы попробовать следующее (не проверено).

curl -# -L "http://example.web:8080/rest/message" | jq '.[] | .message'
...