検索

ホームページ  >  に質問  >  本文

linux - bash によって出力された json ファイルを入力として取得する方法

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

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

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

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

怪我咯怪我咯2716日前911

全員に返信(2)返信します

  • 迷茫

    迷茫2017-06-19 09:09:30

    試してみましょう:

    リーリー

    返事
    0
  • 伊谢尔伦

    伊谢尔伦2017-06-19 09:09:30

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

    返事
    0
  • キャンセル返事