Grundlagen von Linux und der Kommandozeile

$ name=world
$ echo 'Hello $name'
$ echo "Hello $name"

Welche Ausgaben erzeugen die beiden echo-Befehle, wenn die obigen Befehle nacheinander ausgeführt werden?

  1. ADie erste ist Hello world, die zweite Hello $name
  2. BSowohl die erste als auch die zweite ist Hello world
  3. CDie erste ist Hello $name, die zweite Hello world
Antwort und Erläuterung anzeigen

Antwort: C. Die erste ist Hello $name, die zweite Hello world

In der Shell wird ein in einfache Anführungszeichen ('…') eingeschlossener Teil wörtlich genommen, und eine Variable wie $name wird nicht expandiert. Innerhalb doppelter Anführungszeichen ("…") werden Variablen expandiert, daher lautet die zweite Ausgabe Hello world. Doppelte Anführungszeichen dienen auch dazu, den Wert einer Variable als ein einziges Argument zu behandeln, selbst wenn er Leerzeichen enthält. Bei der Zuweisung „name=world“ dürfen um das = übrigens keine Leerzeichen stehen.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Grundlagen von Linux und der Kommandozeile

  1. Wie oben gezeigt, wird das Skript s.sh mit Argumenten ausgeführt. Welche Ausgabe ist richtig?
  2. In welchem Fall ist die Bedingung des obigen if in einem Shell-Skript wahr?
  3. Welche Dateien liegen nach der obigen Sitzung im Verzeichnis?
  4. Ein ausführbares Skript run.sh im aktuellen Verzeichnis ergibt bei Eingabe von „run.sh“ die Meldung „command not found“, lässt sich aber durch Eingabe von „./run.sh“ ausführen. Was ist der Grund?
  5. Welche Kombination der Ausgaben der beiden bash -c-Befehle ergibt sich, wenn die obigen Befehle nacheinander ausgeführt werden?