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?

  1. A[] en [1]
  2. B[1] en [1]
  3. 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.

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over Basis van Linux en de opdrachtregel

  1. Wat is de belangrijkste functie van een pakketbeheersysteem in Linux (apt op Debian-gebaseerde systemen, dnf op Red Hat-gebaseerde systemen enzovoort)?
  2. Wat is op een Linux-systeem met systemd het verschil tussen „systemctl start license.service” en „systemctl enable license.service” voor de service license.service?
  3. De regel „30 2 * * 1 /home/alice/backup.sh” is in cron ingesteld. Wanneer wordt backup.sh uitgevoerd?
  4. Een Linux-server waarschuwt dat de vrije schijfruimte bijna op is. Welke combinatie van een commando om per bestandssysteem het gebruik en de vrije ruimte te controleren, en een commando om de ruimte op te tellen die de bestanden in een directory innemen, is juist?
  5. Je hebt op je eigen pc met ssh-keygen een sleutelpaar voor authenticatie met een publieke sleutel gemaakt en wilt zonder wachtwoord met ssh verbinding maken met de server server1. Hoe moeten de sleutels worden geplaatst?