Pipe zum gleichzeitigen lesen und schreiben?
|
Seitenanfang |
| Hallo zusammen! Ich schreibe gerade an einem Script, mit dem man Dateien verschluesseln kann (gpg). Jetzt moechte ich aber, dass der Benutzer die Passphrase nicht zur Laufzeit eingeben muss, sondern die gleich am Anfang als Option mit uebergeben werden kann. Das funktioniert so weit auch. Allerdings weiss ich nicht, wie ich die Meldungen von gpg in eine Variable umleiten kann (z.B. wenn die Passphrase falsch ist). Hier ein Stueckchen meines Codes, waere super, wenn mir jemand weiterhelfen koennte. open (DATO, "|gpg --decrypt --passphrase-fd 0 --no-tty $verschl_datei >$entschl_datei") || die "Unable to open file $edatei: $!"; print DATO "$passphrase"; close (DATO);
Danke schonmal im Voraus :) Alexandra
Datum: 03.08.2005-12:53

|
re: Pipe zum gleichzeitigen lesen und schreiben?
|
Seitenanfang |
| Schau Dir mal IPC::Open2 und IPC::Open3 an. Ist Standard, Doku findest Du auch auf http://search.cpan.org
Datum: 03.08.2005-14:30

|
re: Pipe zum gleichzeitigen lesen und schreiben?
|
Seitenanfang |
| Hi, ich möchte mich Renee anschließen. Mit ErrorHandling "IPC::Open3". Arbeitest Du unter Unix/Linux dann hilft auch der Befehl perldoc.
[me@host:/work]$ perlodoc IPC::Open3
-uw
Datum: 04.08.2005-00:57

|
re: Pipe zum gleichzeitigen lesen und schreiben?
|
Seitenanfang |
| Hallo ihr! Ich hab noch eine Loesung gefunden. Ich ueberpruefe nach close die Standartvariable $? auf ihren Inhalt. Ist die Entschluesselung fehlgeschlagen hat sie den Wert 512, wenn alles okay ist den Wert 0. Vielen Dank nochmal :) Alexandra
Datum: 04.08.2005-08:36

|
re: Pipe zum gleichzeitigen lesen und schreiben?
|
Seitenanfang |
| Hi, bist Du sicher dass Dir das ausreicht? Wenn Du das Problem auf diese Art und Weise lösen willst, dann solltest Du Dir die ExitStati besorgen. Der Wert 512 zeigt mir eindeutig dass gpg davon eine ganz Reihe erzeugen kann. Nehmen wir nur einmal an, der gpgExitStatus sei 12 und Du prüfst nur auf 512. Boing, dann meldet Dein Skript keinen Fehler, obwohl einer aufgetreten ist. -uw
Datum: 04.08.2005-12:26

|
re: Pipe zum gleichzeitigen lesen und schreiben?
|
Seitenanfang |
| Gruess Dich, mir reicht das aus, da ich nicht "== 512" abfrage, sondern "!= 0". Das heisst also, mein Script reagiert auf jeden Fehlercode, der von gpg erzeugt wird. Oder hab ich noch was uebersehen? Bin auf jeden Fall dankbar fuer Tipps :) Alexandra
Datum: 04.08.2005-14:53

|
re: Pipe zum gleichzeitigen lesen und schreiben?
|
Seitenanfang |
| OK, dann habe ich Dich missverstanden. Mir persönlich wäre das zu wenig. Manchmal erzeugen Programme ja auch durch falsche Handhabung Fehler. Wenn beispielsweise Optionen angegeben werden, die zusammen nicht verwendet werden können. Aber die waren in Deinem Falle ja eh' vorgegeben, weil Du sie hard codest, sodass da gar keiner dran herumschrauben kann. -uw
Datum: 04.08.2005-22:18

|