首页 > 解决方案 > 操作 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

标签: shell

解决方案


响应似乎是 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

推荐阅读