Domanda

Questo comando ha un'uscita vuoto.

su user -c "ABC=abc;echo $ABC"

Qualche idea, come posso definire una variabile nel comando di ingresso?

È stato utile?

Soluzione

Cambia il tuo citazioni per virgolette singole. Le virgolette doppie consentono la variabile da sostituire nel contesto attuale in cui non è ancora impostato. Per vedere la differenza, provare la versione con $USER e confrontarlo con questo:

su user -c 'ABC=abc; echo $ABC; echo $USER'

Altri suggerimenti

Se si utilizza una variante bourne shell:

ABC=abc su user -c 'echo $ABC'

In caso contrario, l'uso ENV.

env ABC=abc su user -c 'echo $ABC'
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top