我需要从网站检索"message"变量并将其存储在变量中。
我是 shell 脚本的新手,所以我不确定该怎么做。一段时间以来,我一直在尝试各种方法,但它们似乎不起作用。
这是网站 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
)
我需要存储消息变量"Dash",以后可以打印机。
虽然我不确定你得到的输出是否是纯 json,但如果你对awk
没问题,你可以试试以下(如果你有合适的 json,那么请使用专门为 json 解析制作的 jq 或解析器(。
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'