Argumente mit Leerzeichen in Skripten verarbeiten

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!


zurück