linux - bash によって出力された json ファイルを入力として取得する方法
怪我咯
怪我咯 2017-06-19 09:07:30
0
2
929

bash や zsh を初めて使用するスクリプト初心者は、Linux で多くのテスト アカウントを処理するスクリプトを作成する必要があります。

コマンド aws get-role.... を使用すると、cmd の出力に json テキストが表示されます。その後、jq を使用する予定です。値の 1 つであるキー Out に基づいて解析するには、処理されるアカウントの数が膨大であるため、これらのアカウントに対応する JSON テキストをファイル形式で保存して処理することができません。

おおよそのロジックは次のとおりです:
最終的な目標は、name の値を取得することです
name=$(cat (aws get-role....) | jq .Role.Name )しかし、このように書くと、システムは私にプロンプ​​トを表示しますzsh: 期待される番号

私の括弧に何か問題がありますか?神に答えを求めてください。
括弧の問題が解決すれば、この書き方は長すぎて美しくないでしょうか?マスターにも色々とご指導をお願いしております、大変感謝しております。

怪我咯
怪我咯

走同样的路,发现不同的人生

全員に返信(2)
迷茫

試してみましょう:

リーリー
いいねを押す +0
伊谢尔伦

cat命令后面跟的是文件名,操作是输出文件内容。然而aws get-role....输出到STDOUT的并非文件名而是一整个JSON字符串,所以觉得直接用name=$(aws get-role.... | jq .Role.Name)以上です。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート