Grundlagen von Linux und der Kommandozeile

$ X=1
$ bash -c 'echo "[$X]"'
$ export X
$ bash -c 'echo "[$X]"'

Welche Kombination der Ausgaben der beiden bash -c-Befehle ergibt sich, wenn die obigen Befehle nacheinander ausgeführt werden?

  1. A[] und [1]
  2. B[1] und [1]
  3. C[] und []
Antwort und Erläuterung anzeigen

Antwort: A. [] und [1]

Eine Variable, der wie in „X=1“ nur ein Wert zugewiesen wurde, ist eine Shell-Variable: Sie ist nur innerhalb dieser Shell nutzbar und wird nicht an von ihr gestartete Kindprozesse (hier eine neue bash) weitergegeben. Mit export wird sie zur Umgebungsvariable, und ihr Wert wird an danach gestartete Kindprozesse vererbt. Die erste Ausgabe ist daher [], die zweite [1]. Wegen der einfachen Anführungszeichen wird $X nicht in der übergeordneten Shell, sondern in der Kind-bash expandiert.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Grundlagen von Linux und der Kommandozeile

  1. Was ist die Hauptaufgabe eines Paketverwaltungssystems unter Linux (apt bei Debian-basierten Systemen, dnf bei Red-Hat-basierten Systemen usw.)?
  2. Was ist auf einem Linux-System mit systemd der Unterschied zwischen „systemctl start license.service“ und „systemctl enable license.service“ für den Dienst license.service?
  3. In cron wurde „30 2 * * 1 /home/alice/backup.sh“ eingetragen. Wann wird backup.sh ausgeführt?
  4. Ein Linux-Server warnt, dass der freie Speicherplatz knapp wird. Welche Kombination aus einem Befehl, der Belegung und freien Platz je Dateisystem anzeigt, und einem Befehl, der den von den Dateien in einem Verzeichnis belegten Platz aufsummiert, ist richtig?
  5. Auf dem eigenen PC wurde mit ssh-keygen ein Schlüsselpaar für die Public-Key-Authentifizierung erzeugt; nun soll die Verbindung zum Server server1 per ssh ohne Passwort möglich werden. Wie werden die Schlüssel richtig abgelegt?