Re: Shell Skript Problem beim Kommandoaufruf inkl. "("
"Jean Fiedler" <jeanfiedler@gmx.de> writes:
>if [ `(diff <(gzip -dc $LASTBACKUP | tar tvf -) <(gzip -dc
>$BDIR/CVS_Backup_$DATE.tar.gz | tar tvf -)) | wc -l` != 0 ] ; then
>
>
>beim ausführen mekert er aber und sagt
>
>syntax error at line 1: `(' unexpected
>
>Ich denke mal er stört sich an der Klammer.
>
>Wie muß ich das jetzt quoten? mit \ vor jeder klammer hab ichs schon
>versucht.
Vermutlich willst Du das Process Substitution des bash nutzen, richtig?
Dann ist an den runden Klammern nichts zu maskieren.
Die Fehlermeldung
>syntax error at line 1: `(' unexpected
ist aber recht spärlich. Um da weiter zu kommen, könntest Du
* erstmal alle weiteren Fehler, die durch Variablenexpansion ohne »"«
auftreten könnte, ausschließen, also:
$ if [ `(diff <(gzip -dc "$LASTBACKUP" | tar tvf -) <(gzip -dc \
"$BDIR"/CVS_Backup_"$DATE".tar.gz | tar tvf -)) | wc -l` != 0 ] ; then
(Beachte die eingefügten Anführungszeichen.),
* zuvor das Kommando
$ set -x
einfügen, damit das Shell ausspuckt, was es gerade macht,
* dein kompliziertes Kommando zur Fehlersuche zerlegen, etwa
$ diff <(gzip -dc "$LASTBACKUP" | tar tvf -) <(gzip -dc \
"$BDIR"/CVS_Backup_"$DATE".tar.gz | tar tvf -) > /dev/null
oder gar
$ cat -- <(date)
ausprobieren, um zu sehen, ob das Shell das versteht.
* im Manual-Page deines Shells überprüfen, ob es die »<(...)«- und
»>(...)«-Geschichten überhaupt kennt.
--
Wenn Sie mir E-Mail schreiben, stellen | When writing me e-mail, please
Sie bitte vor meine E-Mail-Adresse | precede my e-mail address with
meinen Vor- und Nachnamen, etwa so: | my full name, like
Helmut Waitzmann <xxx@example.net>, (Helmut Waitzmann) xxx@example.net
Reply to: