JQ 输出未正确分配给变量
JQ output not correctly assinging to variable
下面jq查询输出正确。
ROUTE_ID= jq -r '.[][]? | select(.pattern? == "*test.com/testcards/email/*").id' route.json
route.json 文件包含 json 输出。
但是 echo "this is route $ROUTE_ID" 或 echo "this is route $ROUTE_ID does not return value for $ROUTE_ID"
你现在正在做的是将环境变量ROUTE_ID设置为nothing来执行jq,例如:
MY_ENV=abc command
将环境变量“MY_ENV”设置为“abc”以执行命令。
您要做的是将命令的输出存储在一个变量中,为此您需要使用命令替换:
my_var=$(command)
你的情况:
route_id=$(jq -r '.[][]? | select(.pattern? == "test.com/testcards/email/").id' route.json)
吹毛求疵;尽可能使用小写变量名称,因为 UPPER_CASE 是“保留”用于导出的环境变量。
下面jq查询输出正确。
ROUTE_ID= jq -r '.[][]? | select(.pattern? == "*test.com/testcards/email/*").id' route.json
route.json 文件包含 json 输出。
但是 echo "this is route $ROUTE_ID" 或 echo "this is route $ROUTE_ID does not return value for $ROUTE_ID"
你现在正在做的是将环境变量ROUTE_ID设置为nothing来执行jq,例如:
MY_ENV=abc command
将环境变量“MY_ENV”设置为“abc”以执行命令。
您要做的是将命令的输出存储在一个变量中,为此您需要使用命令替换:
my_var=$(command)
你的情况:
route_id=$(jq -r '.[][]? | select(.pattern? == "test.com/testcards/email/").id' route.json)
吹毛求疵;尽可能使用小写变量名称,因为 UPPER_CASE 是“保留”用于导出的环境变量。