[bash] Variablen innerhalb von 'su -c' auflösen

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
smo
Beiträge: 489
Registriert: 19.12.2005 16:34:40
Lizenz eigener Beiträge: MIT Lizenz

[bash] Variablen innerhalb von 'su -c' auflösen

Beitrag von smo » 14.02.2009 17:06:42

Hallo,

ich habe ein Problem mit folgender Zeile in einem bash-Skript unter Lenny:

Code: Alles auswählen

su -c 'rsync -aWh --update --progress --partial --delete $DIR $BACKUP_DIR'
Eine echte Fehlermeldung erhalte ich nicht, es wird lediglich der Inhalt von rsync --help ausgegeben. Daher vermute ich, dass es nicht funktioniert, weil meine Variablen nicht korrekt aufgelöst werden. rsync kann dann damit nichts anfangen und verweist mich auf die Hilfe..

Ohne

Code: Alles auswählen

su -c '
funktioniert die Zeile, allerdings dann eben nur für die Dateien in /etc, für die ich keine root-Rechte benötige.

Hat jemand eine Idee was hier schief läuft?

Danke und Grüße
smo

yeti

Re: [bash] Variablen innerhalb von 'su -c' auflösen

Beitrag von yeti » 14.02.2009 17:10:07

smo hat geschrieben:

Code: Alles auswählen

su -c 'rsync -aWh --update --progress --partial --delete $DIR $BACKUP_DIR'
Mit einfachen "Tüddelkes" wird die Expandierung der Variablen zunächst verhindert und dadurch in roots Kontext verschoben. Probier mal die Doppeltüddelkes ("...") stattdessen...

smo
Beiträge: 489
Registriert: 19.12.2005 16:34:40
Lizenz eigener Beiträge: MIT Lizenz

Re: [bash] Variablen innerhalb von 'su -c' auflösen

Beitrag von smo » 14.02.2009 17:11:59

Vielen Dank für die schnelle Antwort. So einfach kann's sein.. :)

Grüße
smo

Antworten