Maison  >  Questions et réponses  >  le corps du texte

linux - Comment prendre la sortie du fichier JSON par Bash comme entrée

Novice en scripting, nouveau sur bash et zsh, j'ai maintenant besoin d'écrire un script pour gérer de nombreux comptes de test sous Linux.

Utilisez la commandeaws get-role....后,cmd中输出显示的是一个json文本,之后打算使用jq pour analyser l'une des valeurs en fonction de la clé. Cependant, en raison du grand nombre de comptes en cours de traitement, le texte json correspondant à ces comptes ne peut pas être stocké sous forme de fichier pour le traitement. ?

La logique approximative est la suivante :
Le but ultime est d'obtenir la valeur du nom
name=$(cat (aws get-role....) | jq .Role.Name)但是我这么写的话系统会提示我zsh: number expected

Y a-t-il un problème avec mes supports ? Demandez à Dieu des réponses.
Si le problème des parenthèses est résolu, cette façon d'écrire est-elle trop longue et pas belle ? Je demande également quelques conseils au maître, je suis très reconnaissant.

怪我咯怪我咯2678 Il y a quelques jours883

répondre à tous(2)je répondrai

  • 迷茫

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

    Essayez-le :

    name=$(aws get-role....| jq .Role.Name)

    répondre
    0
  • 伊谢尔伦

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

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

    répondre
    0
  • Annulerrépondre