Daugiau
Kaip nustatyti kintamąjį į "Bash" komandos išvestį?
Turiu gana paprastą scenarijų, kuris yra maždaug toks:
#!/bin/bash
VAR1="$1"
MOREF='sudo run command against $VAR1 | grep name | cut -c7-'
echo $MOREF
Kai paleidžiu šį scenarijų iš komandinės eilutės ir perduodu jam argumentus, negaunu jokios išvesties. Tačiau kai paleidžiu komandas, esančias kintamajame $MOREF
, galiu gauti išvestį.
Kaip galima paimti komandos, kurią reikia paleisti scenarijuje, rezultatus, įrašyti juos į kintamąjį ir tada išvesti tą kintamąjį į ekraną?
1497
3
Be atgalinių ženklų
galite naudoticommand
$(command)
arba"$(command)"
, kurie, mano manymu, yra lengviau skaitomi ir leidžia juos įterpti.Kabutės (
"
) yra svarbios, kad būtų išsaugotos kelių eilučių reikšmės.Teisingas būdas yra
Jei ketinate naudoti apostrofą, reikia naudoti `````
, o ne `'
. Šis simbolis vadinamas "atgaliniu ženklu" (arba "kapo akcentu").Panašiai:
Kad būtų kitoks: