Basis van Linux en de opdrachtregel
$ X=1
$ bash -c 'echo "[$X]"'
$ export X
$ bash -c 'echo "[$X]"'Wat is de combinatie van de uitvoer van de twee bash -c-commando's als de bovenstaande commando's in volgorde worden uitgevoerd?
- A[] en [1]
- B[1] en [1]
- C[] en []
Antwoord en toelichting tonen
Antwoord: A. [] en [1]
Een variabele die alleen een waarde krijgt, zoals in „X=1”, is een shellvariabele: die kan alleen binnen die shell worden gebruikt en wordt niet doorgegeven aan de kindprocessen die de shell start (hier een nieuwe bash). Met export wordt het een omgevingsvariabele, en erven kindprocessen die daarna worden gestart de waarde. Daarom is de eerste uitvoer [] en de tweede [1]. Door de enkele aanhalingstekens wordt $X niet in de oudershell geëxpandeerd, maar in de kind-bash.
Verder: nog 9 vragen over Basis van Linux en de opdrachtregel