相关疑难解决方法(0)

将bash变量传递给jq选择

我编写了一个脚本来检索某些值file.json.如果我向jq提供值,它可以工作select,但变量似乎不起作用(或者我不知道如何使用它).

#!/bin/sh

#this works ***
projectID=$(cat file.json | jq -r '.resource[] | select(.username=="myemail@hotmail.com") | .id')
echo "$projectID"

EMAILID=myemail@hotmail.com

#this does not work *** no value is printed
projectID=$(cat file.json | jq -r '.resource[] | select(.username=="$EMAILID") | .id')
echo "$projectID"
Run Code Online (Sandbox Code Playgroud)

bash json environment-variables jq

76
推荐指数
7
解决办法
6万
查看次数

jq 尝试使用变量修改 JSON 时出现“无效数字文字”错误

我想将值通过管道传输到 bash 脚本中,该脚本将使用 jq 更改 json 文件中的值。我已经为此工作了一段时间,但我无法克服第一组错误。

这是我的简单 json 文件:

{
    "0000000": {
        "pogo": "AJHVUYKJBOIHKNNLNM"
    },
    "7000000": {
        "pogo": "PPPVUYKJBOIHKNNLNM"
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我的脚本

#!/bin/bash

#-- pass into script
pgid="${1}"
tpogo="${2}"
file="file.json"

#-- tmp files
tmp_dir="$(mktemp -d -t 'text.XXXXX' || mktemp -d 2>/dev/null)"
tmp_input1="${tmp_dir}/temp_input1.txt"

if [ ! -n "$2" ]; then
   { echo "Check your command as you are missing a variable ..."; echo "Example: script.sh "00000001" "jvkkjbkjbd" ..."; }
   exit 1;
fi

jq -r ".${pgid}.pogo = \"${tpogo}\"" "$file" > "$tmp_input1" …
Run Code Online (Sandbox Code Playgroud)

bash json jq

1
推荐指数
1
解决办法
955
查看次数

标签 统计

bash ×2

jq ×2

json ×2

environment-variables ×1