変数を使用する場合にのみ、JQコマンドの結果はnullです。

変数を使用する場合にのみ、JQコマンドの結果はnullです。

jqJSONファイルから値を取得できるように、いくつかのJSON解析を使用しようとしています。設定はJSONファイルがあり、jqキーを手動で入力してコマンドを実行すると機能することです。ただし、or envを使用しようとすると--args失敗します。null

パスワード

stripped_string=$(echo $key | tr -d '"' | tr -d ',')
jq -r --arg str "${stripped_string}" '.data."$str"' 1password.json

echo正しい値が得られていることを確認し、それをキーに置き換えると正しく機能しますstripped_string$str

このコマンドを返される値のキーとして機能さjqせるにはどうすればよいですか?stripped_string

情報を追加するには編集してください。

$key : 「JON_CONSUMER_KEY」

短縮された1password.json

"data": {
        "JON_CONSUMER_KEY": "<value here>",
}

ベストアンサー1

まず、データが有効なJSONであるとします。

{
   "data": { "JON_CONSUMER_KEY": "<value here>" }
}

...ここはdata最上位キーであり、JON_CONSUMER_KEY次のようにユーザーが提供した文字列を使用して、そのキーのデコードされた(生)値を取得できます。data

$ mykey=JON_CONSUMER_KEY
$ jq -r --arg key "$mykey" '.data[$key]' file
<value here>

サブキーの値を抽出する構文を参照してくださいdata

.data."$key"キーが次の場合に使用すると機能します。文字通り $key。この鍵がなければ、自然に戻りますnull

おすすめ記事