Utilisez bash variable dans la commande de substitution avec cette mise en forme, avec JSON

0

La question

J'ai un script bash où une partie de la pièce en une commande changements de temps à autre.
J'ai donc essayé de modifier le script, de sorte que nous pourrions demander, ou au cours d'une partie seulement, etc., mais ne peut pas vraiment le faire.

Si j'écris ceci, ça fonctionne:

#!/bin/bash
changing_stuff='"Active-2021-xy Part YX"'
total_number=`Command_xy show base name "Active-2021-xy-yz Part YX" limit 1 --format json | jq '.total'`


J'ai utilisé '" "' , car comme vous le voyez dans la commande d'origine, il exige " " que de la partie.
Comment pourrais-je ajouter de la changing_stuff dans le milieu de l'exécution du script?
Merci beaucoup!

bash linux shell
2021-11-23 14:45:52
2

La meilleure réponse

1

Le suivant devrait fonctionner. Il n'y a pas besoin d'ajouter des guillemets dans votre changing_stuff variable. Mettre des guillemets autour de la variable lorsque vous l'utilisez les causes de la totalité de la valeur (y compris les espaces) être passé comme argument unique de Command_xy.

#!/bin/bash
changing_stuff='Active-2021-xy Part YX'
total_number=`Command_xy show base name "$changing_stuff" limit 1 --format json | jq '.total'`
2021-11-23 15:06:37
1

Vous semblez être à la recherche pour le trivial

#!/bin/bash
changing_stuff='Active-2021-xy Part YX'
total_number=`Command_xy show base name "$changing_stuff" limit 1 --format json | jq '.total'`

Les citations sont tout simplement un mécanisme pour maintenir la chaîne de caractères avec des espaces, comme un seul argument, dans les deux endroits.

(Tangentiellement, vous aussi vous voulez remplacer les backticks moderne de la substitution de commande syntaxe:)

#!/bin/bash
changing_stuff='Active-2021-xy Part YX'
total_number=$(Command_xy show base name "$changing_stuff" limit 1 --format json | jq '.total')
2021-11-23 15:06:59

Dans d'autres langues

Cette page est dans d'autres langues

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................