2017-01-30 8 views
0

をザ・スクリプト -は、シェルを使用してJSONファイルを読み、私は、ファイルに次のデータを持っている

{"a" : "10", "b" : "20", "c" : "30"} 

私は、この変数の値を読んだとき -

eval "_value_=\"`cat hello1`\""

echo $_value_{a : 10, b : 20, c : 30}

に等しいです。私はjq -rを使ってこれを読むことができません。 でも二重引用符を読み取ることができます。

+0

http://stackoverflow.com/questions/20488315/read-the-json-data-in-shell-script – Bharat

+0

これは別の質問です。ファイルを読んでいる間は二重引用符が必要です。 –

+0

私の答え、または他の何かがあなたの問題を整理しましたか?もしそうなら、それをあなたの答えとして受け入れることを検討してください - 投票数の横にある緑色のチェックマーク/チェックマークをクリックしてください。そうでない場合は、私が、または他の誰かがあなたをさらに助けることができるように、何がうまくいかないと言ってください。ありがとう。 http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work/5235#5235 –

答えて

0

ないあなたが何を意味するか、あるが、それはhello1が含まれているファイルのように聞こえる:

{"a" : "10", "b" : "20", "c" : "30"} 

を、あなたが_value_と呼ばれる変数にそれを取得したいです。その場合は、あなただけの操作を行います。

_value_=$(< hello1) 

は次に、あなたが行うことができます:hello1ファイルの

内容::

echo "$_value_" 
{"a" : "10", "b" : "20", "c" : "30"} 
0

ここでポータブルPOSIX溶液(なしbashismsが)だ

{"a" : "10", "b" : "20", "c" : "30"} 

POSIXシェルコード:

_value_="$(cat "hello1")" 
echo "$_value_" 

出力:

{"a" : "10", "b" : "20", "c" : "30"} 

私はあなたがevalを使用したい理由はわかりません。このコマンドは非常に危険です。特に、読んでいるファイルの内容が完全にわからない場合は、あなたは、単に(これはあなたのJSON入力与えられた可能性は低いと思われる)の変数は、解釈が必要な場合GNU envsubstの使用を検討してください:

_value_="$(envsubst < "hello1")" 
echo "$_value_" 
関連する問題