linux 添加检查以查找返回值是否不是对象

mfuanj7w  于 2023-08-03  发布在  Linux
关注(0)|答案(1)|浏览(116)

我有一个变量,它的值如下所示:

val = $(curl command ...)

字符串
val返回一个看起来像{"parm1":"****","data":"adfsdfsdaf"}的对象
我想为两个条件添加验证:

  • val是一个对象或
  • val.datanull

我想打印一条消息“数据未正确解析”

  • valobject时,例如{"parm1":"****","data":"adfsdfsdaf"}

我想打印一条消息“数据为空”

  • valnull时。

我写了下面的逻辑,但它看起来不正确:

if [[ ${val} == null ]]; then
  echo "data not parsed correctly"
  exit 1


当脚本不应退出时,val的正确值为adfsdfsdaf

yxyvkwin

yxyvkwin1#

关于jq

if val=$(curl ... \
         | jq 'try 
                 if .data != null 
                   then . 
                   else ("is null" | halt_error) 
                 end 
               catch
                 ("not an object" | halt_error)
            ' 2>&1
        )
then
    do_something_with_valid "$val"
else
    echo "error: $val" >&2
    exit 1
fi

字符串

相关问题