引用符付き文字列から環境変数を解析する方法は?

引用符付き文字列から環境変数を解析する方法は?

$GHREPO引用符付き文字列から環境変数()の値を取得するのに問題があります。これが私が実行するコマンドです。j["ChgSub"][$GHREPO][0]["Major"]環境変数として$ GHREPO値を使用してディレクトリを作成しようとしています。

 mkdir `cat ../dummy.json | 
 ruby -rjson -e 'j = JSON.parse($stdin.read); puts j["ChgSub"][$GHREPO][0]["Major"].to_s'`

編集:dummy.jsonコンテンツ

{

  "ChgSub": {
    "ecx": [
      {
        "Major": 0,
        "Minor": 0,
        "Patch": 3
      }
    ]
  }
}

ベストアンサー1

変数は一重引用符で囲まれた文字列内では評価されません。二重引用符を使用する必要があります。文字列全体に二重引用符を使用できない場合、または使用したくない場合は、文字列の対応する部分にのみ二重引用符を使用できます。

ruby -rjson -e 'j = JSON.parse($stdin.read); puts j["ChgSub"]["'"$GHREPO"'"][0]["Major"].to_s'

これは3つの隣接する別々の引用文字列です。

'j = JSON.parse($stdin.read); puts j["ChgSub"]["'

そして

"$GHREPO"

そして

'"][0]["Major"].to_s'

おすすめ記事