字符串变量插值

Jor*_*rdi -1 bash sh jq

我编写了这个脚本:

for i in `seq 1 $1`; do
        timestamp=$(uuidgen)
        cat $2.json | jq '.transactionId = "$timestamp"' > $3/$timestamp.json
done
Run Code Online (Sandbox Code Playgroud)

我的问题是,jq '.transactionId = "$timestamp"'因为文件的内容是:

{
  "transactionId": "$timestamp"
}
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

mic*_*ckp 6

有更好的方法将变量传递给jq:

$ cat data.test
{
  "foo": "noooo"
}
$ new=bar
$ jq --arg new_foo "$new" '.foo |= $new_foo' data.test
{
  "foo": "bar"
}
Run Code Online (Sandbox Code Playgroud)