Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
Argumente mit Leerzeichen an ein Skript übergeben

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Sonstiges
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Rossi
Gast





BeitragVerfasst am: 15. Aug 2001 21:46   Titel: Argumente mit Leerzeichen an ein Skript übergeben

Hallo,

wie kann ich einen String mit Leerzeichen als ein Argument übergeben ? Zum Beispiel:

brennen "/mnt/this is a test"

wobei "brennen" das aufzurufende bash Skript wäre und "/mnt/this is a test" das Argument $1. Konkret ein Dateiname.

Das Problem ist, das trotz Anführungszeichen um das Argument nur der erste Teil erkannt wird (bis zum ersten Leerzeichen). Der Nachfolgende Teil ("is") wäre schon $2. Und das soll nicht.
 

greg



Anmeldungsdatum: 22.06.2001
Beiträge: 16

BeitragVerfasst am: 15. Aug 2001 22:13   Titel: Re: Argumente mit Leerzeichen an ein Skript übergeben

wenn du diese angabe mit backslashes machst:
brennen /mnt/this\ is\ a\ test

dann sollte es funktionieren.

bei mir funktioniert es allerdings auch mit anführungzeichne, so wie oben bei dir, korrekt:
testscript:
#!/bin/sh
echo "$1"

wenn ich jettzt z.b. eingebe:
./testscript "Ich liebe pro-linux"

bekomme ich Smile :
Ich liebe pro-linux


Zuletzt bearbeitet von greg am 15. Aug 2001 22:13, insgesamt 2-mal bearbeitet
 
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden

Rossi
Gast





BeitragVerfasst am: 16. Aug 2001 12:58   Titel: Re: Argumente mit Leerzeichen an ein Skript übergeben

Danke erstmal für Deine Antwort. Ich bin ein Stück weiter. Aus irgendwelchen Gründen will mkisofs das Argument nicht. "echo" zeigt $1 korrekt an, aber mkisofs nicht mehr. Rufe ich mkisofs aber direkt auf mit dem Dateinamen in Anführungszeichen, haut alles hin:

#!/bin/sh

MKISO=/usr/bin/mkisofs
CDR=/usr/bin/cdrecord
DEV="1,6,0"

if [ "$1" = "erase" ];then
$CDR dev=$DEV blank=all
echo "CD erased"
exit 0
fi

echo $1; echo

$MKISO -iso-level 2 -r -o /mnt/tmp/cd.raw $1
$CDR -v -V speed=4 dev=$DEV /mnt/tmp/cd.raw
rm -f /mnt/tmp/cd.raw
exit 0


> ./brenn "/mnt/tmp/this is a test"/mnt/tmp/this is a test

/usr/bin/mkisofs: No such file or directory. Invalid node - /mnt/tmp/this
/usr/bin/cdrecord: No such file or directory. No read access for '/mnt/tmp/cd.raw'.

Der letzte Punkt ist klar ... cd.raw gibt es noch nicht.
Rufe ich aber

mkisofs -iso-level 2 -r -o /mnt/tmp/cd.raw "/mnt/tmp/this is a test"

direkt auf, gibt es keine Probleme.

Kurios.
 

Rossi
Gast





BeitragVerfasst am: 16. Aug 2001 13:01   Titel: Re: Argumente mit Leerzeichen an ein Skript übergeben

Hups, da hat das Forum doch glatt nen Zeilelumbruch gefressen. Die richtige Ausgabe muß lauten:

>./brenn "/mnt/tmp/this is a test"

/mnt/d_hdg1/this is a test

/usr/bin/mkisofs: No such file or directory. Invalid node - /mnt/d_hdg1/this
/usr/bin/cdrecord: No such file or directory. No read access for
'/mnt/d_hdg1/cd.raw'.
 

Rossi
Gast





BeitragVerfasst am: 16. Aug 2001 13:03   Titel: Re: Argumente mit Leerzeichen an ein Skript übergeben

Und statt "d_hdg1" natürlich "tmp". Und jetzt gehe ich ins Bett ....
 

Sebastian Ude
Gast





BeitragVerfasst am: 16. Aug 2001 14:08   Titel: Re: Argumente mit Leerzeichen an ein Skript übergeben

Wie sieht denn die Zeile mit dem mkisofs-Aufruf in deinem Script aus ?

Probier mal

mkisofs [Optionen] "$1"

statt

mkisofs [Optionen] $1
 

Rossi
Gast





BeitragVerfasst am: 16. Aug 2001 19:03   Titel: Re: Argumente mit Leerzeichen an ein Skript übergeben

Götterknabe ! Das "$1" ist es gewesen (die Anführungszeichen). Danke und schönen Abend noch Smile
 

Sebastian Ude
Gast





BeitragVerfasst am: 16. Aug 2001 21:15   Titel: Re: Argumente mit Leerzeichen an ein Skript übergeben

> Danke und schönen Abend noch :)

Danke, gleichfalls.
 

Beiträge vom vorherigen Thema anzeigen:   
     Pro-Linux Foren-Übersicht -> Sonstiges Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehen Sie zu:  

Powered by phpBB © phpBB Group
pro_linux Theme © 2004 by Mandaxy