Hallo Leute,
ich bin gerade dabei mir ein Skript zu schreiben das einen Verzeichnisnamen als Parameter übergeben bekommt. Das funktioniert alles ganz gut, nur mit Verzeichnissen die Leerzeichen im Namen enthalten bekomme ich Probleme. Mit Quoting bzw. Hochkommas auf der Kommandozeile funktioniert alles bestens:
user@linux>cd 'Verzeichnis mit Leerzeichen' user@linux>cd Verzeichnis\ mit\ Leerzeichen
aber bei Übergabe an das Skript:
user@linux>bashscript 'Verzeichnis mit Leerzeichen'
enthält $1 nur noch "Verzeichnis". Eine Lösung wäre jetzt vielleicht über $# die Anzahl der Parameter festzustellen und den Verzeichnisnamen wieder zusammenzubasteln. Gibt es aber vielleicht eine bessere und einfachere Lösung für das Problem?
Danke und Grüsse, Clemens
Hallo Clemens,
On Sunday 13 July 2003 14:49, Clemens Altenburger wrote:
ich bin gerade dabei mir ein Skript zu schreiben das einen Verzeichnisnamen als Parameter übergeben bekommt. Das funktioniert alles ganz gut, nur mit Verzeichnissen die Leerzeichen im Namen enthalten bekomme ich Probleme. Mit Quoting bzw. Hochkommas auf der Kommandozeile funktioniert alles bestens:
was für eine Shell verwendest Du? Mit der Bash 2.xx scheint es zu funktionieren:
bash-2.05b$ cat tt #!/usr/local/bin/bash echo "1: $1" echo "2: $2"
bash-2.05b$ ./tt 'mehrere Parameter als Argument' 1: mehrere Parameter als Argument 2: bash-2.05b$
Grüße, Matthias
Hallo Clemens,
Am 13. Juli 2003 schrieb Clemens Altenburger:
aber bei Übergabe an das Skript:
user@linux>bashscript 'Verzeichnis mit Leerzeichen'
enthält $1 nur noch "Verzeichnis".
das ist sicher nicht so, aber wahrscheinlich musst du "$1" in dein Skript schreiben.
Torsten
lug-dd@mailman.schlittermann.de