例如:
curl -s 'https://api.github.com/users/lambda' |\
jq -r '.name'
返回值“姓名" json 属性。如果该属性为空或不存在命令返回无效的或者 '':
curl -s 'https://api.github.com/users/lambda' |\
jq -r '.blabla'
我需要运行命令,就像python main.py
上面的命令返回非空或非空值时一样。喜欢:
curl -s 'https://api.github.com/users/lambda' |\
jq -r '.name' | ..... python main.py
我计划使用 cron 来设置它并解析外部 json(如标志)以运行本地脚本。
答案1
由于命令成功,无论输出如何,您都必须将其保存在变量中,如果变量不为空,则将其传递给脚本。看起来只有当您请求没有值的已知字段(例如.gravatar_id
)的数据时,您才会得到空,而null
如果您传递未知字段(例如.blabla
),您就会得到空。为了适应两者,你可以这样做:
var=$(curl -s 'https://api.github.com/users/lambda' | jq -r '.name')
[ "$var" != "null" -a -n "$var" ] && printf '%s\n' "$var" | python main.py