Použití bash proměnné v substituce příkazu s formátováním, s JSON

0

Otázka

Mám bash skript, kde jeden z část v příkazu čas od času mění.
Tak jsem se snažil změnit scénář, takže jsme se mohli zeptat na to, nebo změnit na jeden díl, atd., ale nemůžu, opravdu, aby to.

Když jsem to psal, tak to funguje:

#!/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'`


Použil jsem '" "' , protože, jak vidíte na původní příkaz vyžaduje " " pro část.
Jak jsem mohl přidat changing_stuff do středu script?
Díky moc!

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

Nejlepší odpověď

1

Následující by mělo fungovat. Není třeba přidat quotes do vašeho changing_stuff proměnnou. Dávat uvozovky kolem proměnná, když ji použijete způsobuje celou hodnotu (včetně mezer), které mají být předány jako jediný argument 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

Zdá se, hledal triviální

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

Uvozovky jsou jednoduše mechanismus pro udržení řetězec s mezerami v ní jako jediný argument, na obou místech.

(Tangenciálně, budete také chtít nahradit ve zpětném apostrofu s moderní příkaz syntaxe substituce:)

#!/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

V jiných jazycích

Tato stránka je v jiných jazycích

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