Hvordan setter jeg en variabel til utgangen av en kommando i Bash?
Jeg har et ganske enkelt skript som er omtrent som følger:
#!/bin/bash
VAR1="$1"
MOREF='sudo run command against $VAR1 | grep name | cut -c7-'
echo $MOREF
Når jeg kjører dette skriptet fra kommandolinjen og sender det argumentene, får jeg ingen utdata. Men når jeg kjører kommandoene som finnes i $MOREF
-variabelen, er jeg i stand til å få utdata.
Hvordan kan man ta resultatene av en kommando som må kjøres i et skript, lagre den i en variabel og deretter sende den variabelen på skjermen?
1497
3
I tillegg til backticks
kan du brukecommand
$(command)
eller"$(command)"
som jeg synes er lettere å lese, og tillater nesting.Anførselstegn (
"
) er viktig for å bevare verdier på flere linjer.Den riktige måten er
Hvis du skal bruke en apostrof, trenger du
`
, ikke'
. Dette tegnet kalles "backticks" (eller "grav aksent").Som dette:
Bare for å være annerledes: