Variable im Bashskript auswerten

Du suchst ein Programm für einen bestimmten Zweck?
Antworten
Vorsicht Anfänger
Beiträge: 95
Registriert: 15.05.2006 11:30:03

Variable im Bashskript auswerten

Beitrag von Vorsicht Anfänger » 11.10.2006 14:06:13

Hallo,

in einem Skript habe ich folgendes stehe:

Code: Alles auswählen

cat $TMP_BACKUP_FILES | \
sort | uniq -u `test "$2" = "test" || echo "> $BACKUP_FILES"`
Als Ergebnis erhalte ich auf der bash:
uniq: >: Datei oder Verzeichnis nicht gefunden
Ich nehme mal an, dass das die Variable $BACKUP_FILES der Quotierung wegen nicht richtig ausgewertet wird.

Kann mir da jemand helfen,
Danke
Ralf

fake
Beiträge: 86
Registriert: 10.04.2006 18:19:32

Beitrag von fake » 11.10.2006 14:11:42

Du hast das Programm "uniq" nicht installiert.
Einfach nachinstallieren, dann sollte die Fehlermeldung nicht mehr auftauchen.

http://linux-weblog.de

Vorsicht Anfänger
Beiträge: 95
Registriert: 15.05.2006 11:30:03

Beitrag von Vorsicht Anfänger » 11.10.2006 14:12:40

Ach so, ich muss noch anmerken, dass $2 leer ist, also der Inhalt von echo ausgegeben werden sollte und damit das Pipe-Ergebnis in der Datei $BACKUP_FILES landen sollte.

Vorsicht Anfänger
Beiträge: 95
Registriert: 15.05.2006 11:30:03

Beitrag von Vorsicht Anfänger » 11.10.2006 14:14:32

Hallo fake,

nene, das ist drauf.
So ...

Code: Alles auswählen

cat $TMP_BACKUP_FILES | \
sort | uniq -u > $BACKUP_FILES
... geht es ohne Probleme.

Trotzdem danke

Vorsicht Anfänger
Beiträge: 95
Registriert: 15.05.2006 11:30:03

Beitrag von Vorsicht Anfänger » 11.10.2006 14:47:29

So, ich habe doch noch eine Lösung gefunden:

Code: Alles auswählen

cat $TMP_BACKUP_FILES | \
sort | uniq -u > \
`test "$2" = "test" && echo "/dev/stdout" || echo "$BACKUP_FILES"`
Nicht wirklich elegant, aber für mich reicht es. Im Übrigen wird $BACKUP_FILES sehr wohl ausgewertet, aber da uniq ">" als Datei interpretiert, kam es zu dem oben gezeigten Problem.

Danke

Antworten