Befehlssubstitution

LinuxBeginner
Jetzt üben

Einführung

In diesem Lab lernen Sie einen nützlichen Kniff namens Befehlssubstitution kennen.

Stellen Sie sich vor, Sie schreiben eine E-Mail und möchten das heutige Datum einfügen. Der Computer soll „das heutige Datum“ automatisch einsetzen.

Unter Linux verwenden Sie dafür $(). Damit weisen Sie den Computer an: „Führe diesen Befehl zuerst aus und setze das Ergebnis genau hier ein.“

Das ist eine der nützlichsten Funktionen der Shell zum Verknüpfen von Befehlen. Statt die Ausgabe eines Befehls manuell zu kopieren und in einen anderen Befehl einzufügen, übernimmt die Shell diese Ersetzung automatisch.

In diesem Lab werden Sie:

  • lernen, wie Sie den Befehl date formatieren;
  • einen Ordner erstellen, dessen Name automatisch dem heutigen Datum entspricht, zum Beispiel 2025-12-23.

Datum formatieren

Rufen Sie zunächst das Datum im gewünschten Format ab.

Wenn Sie einfach date ausführen, erhalten Sie eine uneinheitliche Zeichenkette.

Das zeigt anschaulich, dass viele Befehle eine formatierte Ausgabe unterstützen. Bei Linux-Tools können Sie häufig zwischen einer für Menschen gut lesbaren und einer für Maschinen geeigneten Darstellung wählen – je nachdem, was Sie als Nächstes benötigen.

Verwenden Sie +%F, um einen übersichtlichen Ordnernamen wie 2025-12-23 zu erzeugen:

date +%F

Beispielausgabe:

2025-12-23

Dynamischen Ordner erstellen

Jetzt kommt der eigentliche Kniff.

Sie möchten ein Verzeichnis anhand des Datums erstellen, ohne das Datum manuell einzugeben.

Setzen Sie den Befehl date mithilfe von $() in den Befehl mkdir ein. Die Shell erkennt $() und führt diesen Teil zuerst aus.

Führen Sie den folgenden Befehl aus:

mkdir $(date +%F)

Was ist passiert?

  1. Die Shell hat $(date +%F) erkannt.
  2. Sie hat date +%F im Hintergrund ausgeführt und das Ergebnis erhalten, zum Beispiel 2025-12-23.
  3. Sie hat den Teil $() durch dieses Ergebnis ersetzt.
  4. Sie hat mkdir 2025-12-23 ausgeführt.

Daran sehen Sie, dass die Shell den endgültigen Befehl schrittweise aufbaut. Die Befehlssubstitution findet statt, bevor der Befehl endgültig ausgeführt wird. Deshalb kann das Ergebnis wie ein normales Argument verwendet werden.

Ordner überprüfen

Prüfen Sie nun, ob der Vorgang erfolgreich war.

Führen Sie ls aus:

ls -l

In der Ausgabe sollte ein neuer Ordner erscheinen, dessen Name dem heutigen Datum entspricht.

Wenn Sie dieses Skript morgen ausführen, wird ein neuer Ordner für das morgige Datum erstellt. Nach diesem Prinzip funktionieren automatisierte Sicherungen!

Zusammenfassung

In diesem Lab haben Sie die Befehlssubstitution kennengelernt – also die Verwendung der Ausgabe eines Befehls als Eingabe für einen anderen Befehl.

  • Der Kniff: $(command)
  • Der Ablauf: Linux führt zuerst den inneren Befehl aus und ersetzt ihn anschließend durch das Ergebnis.
  • Das Ergebnis: Sie können dynamische Befehle erstellen, die sich abhängig von der Zeit, dem Benutzer oder anderen Bedingungen ändern, ohne die entsprechenden Werte manuell eingeben zu müssen.

Führen Sie echo "Today is $(date)" aus, um die Befehlssubstitution erneut in Aktion zu sehen!