shell - 操作 shell 脚本的输出
问题描述
我有一些输出数据,我只想将一个值放入变量中。输出是这样的:
Vin Script Sig:
Vin Tx hash:0000000000000000000000000000000000000000000000000000000000000000
error: {"code":-1,"message":"The message"}
我只想将“代码”中的值放入变量中。在这种情况下,变量的值将是 -1。我在想这样的脚本:
#!/bin/bash
string="command to generate the output"
code=$string "some kind of filters"
echo $code
解决方案
响应似乎是 JSON,但包含大量文本。理想情况下,您只能访问 JSON 部分,然后使用 JQ 查询/操作它。对于您提供的特定情况,shell 可以做到。假设输出被捕获在文件“result-file.txt”中
code=
while read p ; do
if [[ "$p" == error:* ]] ; then
code=${p#*\"code\":};
code=${code%,*};
break
fi;
done <result-file.txt
推荐阅读
- javascript - 使用外部视频播放器源关闭时在纯 css 模态中暂停视频
- java - 从数据库到选择框的可观察列表
- javascript - 从 HTML 表中读取数据的 JavaScript
- c# - 在现实世界的 asp.net 核心网络应用程序中,signalR USER COUNT 或 HUB COUNT 限制是什么?
- h2o - h2o.ensemble,给出错误 java.lang.NullPointerException
- c# - 如何使用 C# 获取泰国的当前日期时间
- vba - 从 SharedMailbox 文件夹获取电子邮件
- css - 如何更改 Bootstrap 4 范围滑块颜色?
- docker - Docker compose 不适用于多个项目
- c++ - 如何声明一个未知大小的数组,然后输入直到我想要,然后获取数组的大小?