Beitragsdatum | 12.05.2012 |
---|---|
Letzte Aktualisierung | 01.11.2016 |
Betrifft | Linux allgemein |
Soll ein Skript (z.B. ein Bash-Skript) ein Argument, welches Leerzeichen enthält, korrekt verarbeiten, so muss die Variable, die das Argument enthält, innerhalb des Skriptes jeweils in Anführungszeichen gesetzt werden.
Beispiel Test-Skript:
#!/bin/bash VARIABLE=$1 echo "ls mit Variable ohne Anführungszeichen:" ls $VARIABLE echo "ls mit Variable mit Anführungszeichen:" ls "$VARIABLE" exit 0
Wird dieses Skript mit einem Argument mit Leerzeichen ausgeführt, so werden an das erste ls zwei Argumente übergeben, an das zweite ls nur ein Argument (das mit Leerzeichen).
Ausgabe:
user@host:~$ ./testskript "Hello World" ————————————— ls mit Variable ohne Anführungszeichen: ls: Zugriff auf Hello nicht möglich: Datei oder Verzeichnis nicht gefunden ls: Zugriff auf World nicht möglich: Datei oder Verzeichnis nicht gefunden ————————————— ls mit Variable mit Anführungszeichen: ls: Zugriff auf Hello World nicht möglich: Datei oder Verzeichnis nicht gefunden
Lösung:
Kann ein Argument in einem Skript Leerzeichen enthalten (gerade bei Dateioperationen immer möglich), dann muss die Variable innerhalb des Skriptes immer in Anfürhungszeichen eingeschlossen werden!