Problem mit Kommandozeilenparameter aus Shell-Variablen

14/04/2016 - 06:40 von Magnus Warker | Report spam
Hallo,

folgender Aufruf von erzeugt ein Backup von einer PostgreSQL-Datenbank
und verwendet den Parameter -T, um Tabellen davon auszuschliessen:

pg_dump -Uwww -w -T'mig_*' mydb > test.sql

Das funktioniert einwandfrei.

Wenn dieselben Parameter aber in einem Shell-Skript in einer Variablen
zusammengebaut und dann verwendet werden, wird dieser Parameter
scheinbar nicht ausgewertet:

#!/bin/sh

OPT="-Uwww -w -T'mig_*'"
f=test.sql

pg_dump $OPT mydb > $f

Das Backup wird erstellt, aber die mit "mig_" beginnenden Tabellen sind
weiterhin enthalten. Ich vermute, es hat was mit den Apostrophen zu tun?

Tipps?

Danke
Magnus
 

Lesen sie die antworten

#1 Ulli Horlacher
14/04/2016 - 09:30 | Warnen spam
Magnus Warker wrote:

folgender Aufruf von erzeugt ein Backup von einer PostgreSQL-Datenbank
und verwendet den Parameter -T, um Tabellen davon auszuschliessen:

pg_dump -Uwww -w -T'mig_*' mydb > test.sql

Das funktioniert einwandfrei.

Wenn dieselben Parameter aber in einem Shell-Skript in einer Variablen
zusammengebaut und dann verwendet werden, wird dieser Parameter
scheinbar nicht ausgewertet:

#!/bin/sh

OPT="-Uwww -w -T'mig_*'"
f=test.sql

pg_dump $OPT mydb > $f

Das Backup wird erstellt, aber die mit "mig_" beginnenden Tabellen sind
weiterhin enthalten. Ich vermute, es hat was mit den Apostrophen zu tun?



Beim direkten Aufruf werden sie von der Shell interpretiert und bei der
Variablenzuweisung nicht.



Tipps?



Lass sie weg, du brauchst sie nicht.


Ullrich Horlacher Server und Virtualisierung
Rechenzentrum IZUS/TIK E-Mail:
Universitaet Stuttgart Tel: ++49-711-68565868
Allmandring 30a Fax: ++49-711-682357
70550 Stuttgart (Germany) WWW: http://www.tik.uni-stuttgart.de/

Ähnliche fragen