Fwd: Re: LÖSUNG: Re: Cronjob meldet "Invalid or incomplete multibyte or wide character" beim Versenden von Mail
ups, sorry, sollte nur an die Liste gehen...
Grüße
Rainer
-------- Weitergeleitete Nachricht --------
Von: Rainer Wolff
Am Sonntag, 10. Juni 2007 21:10 schrieb Rainer Wolff:
(...). export LANG=de_DE@euro && mail -s "Daily Backup Report $(date +%d.\ %B\ %Y -d yesterday)" name@domain.de <$BACKUP_REPORT (...).
IMHO ist am "export LANG=de_DE@euro && mail ..."-Konstrukt etwas überflüssig: Eigentlich sollte auch so etwas wie "LANG=de_DE@euro mail ..." funktionieren.
Ich würde sagen, dass mindestens ein Semikolon dazwischen muss, also "LANG=de_DE@euro; mail..." - aber in diesem Fall klappt es ohne "export" nicht (hab's probiert). Also passt schon so. Vielleicht sehen auch zwei Zeilen besser aus: export LANG=blabla mail blabla Viele Grüße Rainer
Gruß Jan -- Every man has the right to be wrong in his opinions, but no man has the right to be wrong in his facts.
-- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Am Donnerstag, 14. Juni 2007 08:42 schrieb Rainer Wolff:
ups, sorry, sollte nur an die Liste gehen...
Ah, okay, dann schick ich mal meine Antwort hinterher. :)
Am Montag, den 11.06.2007, 18:02 +0200 schrieb Jan Ritzerfeld: (...).
IMHO ist am "export LANG=de_DE@euro && mail ..."-Konstrukt etwas überflüssig: Eigentlich sollte auch so etwas wie "LANG=de_DE@euro mail ..." funktionieren.
Ich würde sagen, dass mindestens ein Semikolon dazwischen muss, also "LANG=de_DE@euro; mail..." - aber in diesem Fall klappt es ohne "export" nicht (hab's probiert).
Also es funktioniert bei mir scheinbar auch nicht: jan@linux:~> LANG=de_DE@euro echo $LANG de_DE.UTF-8 Andererseits kann ich KDE-Programme z.B. mit "KDE_LANG=en_US kopete" starten und die UI wird tatsächlich Englisch. Was auch geht ist: jan@linux:~> LANG=C ls "" ls: cannot access : No such file or directory oder jan@linux:~> LANG=de_DE@euro ls "" ls: Zugriff auf nicht m�glich: Datei oder Verzeichnis nicht gefunden Im ersten Fall ist die Fehlermeldung auf Englisch und im zweiten ist das 'ö' von "möglich" tatsächlich Latin9 und wegen der UTF-8-Konsole verkrüppelt dargestellt.
Also passt schon so. Vielleicht sehen auch zwei Zeilen besser aus:
export LANG=blabla mail blabla
Eben. Das "export" bewirkt, daß die Umgebungsvariable dauerhaft gesetzt wird. Nur ist das nicht immer wünschenswert, genau aus diesem Grund benutze ich meist die obige Version in einer Zeile ohne "export", ';' oder '&&'. :) Gruß Jan -- The ten most feared words in the English language are: "Hello, I'm from the government and I'm here to help...." -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hi Jan! On Thu, 14 Jun 2007, Jan Ritzerfeld wrote:
Also es funktioniert bei mir scheinbar auch nicht: jan@linux:~> LANG=de_DE@euro echo $LANG de_DE.UTF-8
Hier tritt Variablen-Expansion auf. Sprich die Shell expandiert $LANG zu de_DE.UTF-8 bevor echo es zu sehen bekommt und bevor die Umgebungsvariable für echo sichtbar ist. Das sieht man auch sehr schön, wenn man set -x setzt: ,---- | ~$ set -x | ~$ LANG=foobar echo $LANG | + LANG=foobar | + echo de_DE.UTF-8 | de_DE.UTF-8 `---- Als Workaround geht: ,---- | ~$ LANG=foobar sh -c 'echo $LANG' | + LANG=foobar | + sh -c 'echo $LANG' | foobar `---- Man beachte die einfachen Anführungszeichen, die verhindern, dass die Shell $LANG vorzeitig expandiert. Mit freundlichen Grüßen, Christian -- hundred-and-one symptoms of being an internet addict: 134. You consider bandwidth to be more important than carats. -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hallo, Am Don, 14 Jun 2007, Rainer Wolff schrieb:
Am Montag, den 11.06.2007, 18:02 +0200 schrieb Jan Ritzerfeld: [..]
IMHO ist am "export LANG=de_DE@euro && mail ..."-Konstrukt etwas überflüssig: Eigentlich sollte auch so etwas wie "LANG=de_DE@euro mail ..." funktionieren.
Ich würde sagen, dass mindestens ein Semikolon dazwischen muss, also "LANG=de_DE@euro; mail..." - aber in diesem Fall klappt es ohne "export" nicht (hab's probiert). Also passt schon so. Vielleicht sehen auch zwei Zeilen besser aus:
Nein, eben nicht. Der Vorschlag von Jan war schon richtig!
export LANG=blabla mail blabla
Das ist äquivalent zu export LANG=blabla; mail blabla Es ist aber sinnvoller LANG wie vorgeschlagen nur für mail zu setzen: LANG=blabla mail blabla HTH, -dnh --
_Ich_ trage die ja auch nicht. Und wie können die _dich_ dann immer so im Schritt kneifen? Weiß ich auch nicht. Ich weiß nur, daß es mir immer recht eng im Schritt wird, wenn ich ein nettes Mädel mit einem Stringtanga sehe. [Marius Brehler und Martin Leidig in suse-talk] -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Am Donnerstag, 14. Juni 2007 19:49 schrieb Christian Brabandt:
Hi Jan!
On Thu, 14 Jun 2007, Jan Ritzerfeld wrote:
Also es funktioniert bei mir scheinbar auch nicht: jan@linux:~> LANG=de_DE@euro echo $LANG de_DE.UTF-8
Hier tritt Variablen-Expansion auf. (...).
Argh. Blind! Zu simple "Schnelltests" sind manchmal eben einfach zu simpel. :-D Danke Jan -- Expert advice is a great comfort, even when it's wrong. -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hallo David, Am Donnerstag, den 14.06.2007, 20:25 +0200 schrieb David Haller:
Hallo,
Am Don, 14 Jun 2007, Rainer Wolff schrieb:
Am Montag, den 11.06.2007, 18:02 +0200 schrieb Jan Ritzerfeld: [..]
IMHO ist am "export LANG=de_DE@euro && mail ..."-Konstrukt etwas überflüssig: Eigentlich sollte auch so etwas wie "LANG=de_DE@euro mail ..." funktionieren.
Ich würde sagen, dass mindestens ein Semikolon dazwischen muss, also "LANG=de_DE@euro; mail..." - aber in diesem Fall klappt es ohne "export" nicht (hab's probiert). Also passt schon so. Vielleicht sehen auch zwei Zeilen besser aus:
Nein, eben nicht. Der Vorschlag von Jan war schon richtig!
export LANG=blabla mail blabla
Das ist äquivalent zu export LANG=blabla; mail blabla
Es ist aber sinnvoller LANG wie vorgeschlagen nur für mail zu setzen:
LANG=blabla mail blabla
Ich hab's entsprechend geändert und es funktioniert genau so. Verstehen kann ich es aber, ehrlich gesagt, nicht, was passiert da? Wieso wird auf diese Weise LANG nur für mail gesetzt? *ratlos* Viele Grüße Rainer
HTH, -dnh
--
_Ich_ trage die ja auch nicht. Und wie können die _dich_ dann immer so im Schritt kneifen? Weiß ich auch nicht. Ich weiß nur, daß es mir immer recht eng im Schritt wird, wenn ich ein nettes Mädel mit einem Stringtanga sehe. [Marius Brehler und Martin Leidig in suse-talk]
-- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hi Rainer! On Sat, 16 Jun 2007, Rainer Wolff wrote:
Am Donnerstag, den 14.06.2007, 20:25 +0200 schrieb David Haller:
Es ist aber sinnvoller LANG wie vorgeschlagen nur für mail zu setzen:
LANG=blabla mail blabla
Ich hab's entsprechend geändert und es funktioniert genau so. Verstehen kann ich es aber, ehrlich gesagt, nicht, was passiert da? Wieso wird auf diese Weise LANG nur für mail gesetzt? *ratlos*
Weil LANG damit eben gerade *nicht* exportiert wird und nur für diese eine Anweisung die entsprechende Umgebungsvariable überschreibt, die sonst gesetzt ist. D.h. nachdem diese Befehlszeile ausgeführt wurde, ist LANG wieder genauso gesetzt, wie es vorher war. Mit freundlichen Grüßen, Christian -- hundred-and-one symptoms of being an internet addict: 137. You decide to stay in college for an additional year or two, just so you can have the free Internet access. -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hallo, Am Sam, 16 Jun 2007, Rainer Wolff schrieb:
Am Donnerstag, den 14.06.2007, 20:25 +0200 schrieb David Haller: [..]
Es ist aber sinnvoller LANG wie vorgeschlagen nur für mail zu setzen:
LANG=blabla mail blabla
Ich hab's entsprechend geändert und es funktioniert genau so. Verstehen kann ich es aber, ehrlich gesagt, nicht, was passiert da? Wieso wird auf diese Weise LANG nur für mail gesetzt? *ratlos*
Bei dieser Syntax VARIABLENNAME=WERT PROGRAMM ARGUMENTE wird die Variable _nur_ für das aufgerufene Programm als Umgebungsvariable übergeben, die shell ergänzt die Umgebung für das aufgerufene Programm, ohne die eigene Umgebung zu ändern (wie das mit 'export' der Fall ist). Siehe dazu auch ==== man bash ==== ENVIRONMENT When a program is invoked it is given an array of strings called the environment. This is a list of name-value pairs, of the form name=value. ==== und man 2 execve und man 3 exec. -dnh -- Die Signatur will nicht angezeigt werden. Die gewuenschte Signatur ist zur Zeit nicht verfuegbar. Moeglicherweise ist sie gerade im Urlaub oder hat einfach keine Lust angezeigt zu werden. Oder wollen Sie staendig beobachtet werden? -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hallo David, hallo Christian, danke für Eure Erläuterung. Ich wäre aber auch beim unbedarften Lesen der Manpage nicht auf die Idee gekommen, das hier so zu verwenden. Mein Problem ist gelöst und ich habe wieder etwas gelernt. Danke und Grüße Rainer Am Samstag, den 16.06.2007, 20:00 +0200 schrieb David Haller:
Hallo,
Am Sam, 16 Jun 2007, Rainer Wolff schrieb:
Am Donnerstag, den 14.06.2007, 20:25 +0200 schrieb David Haller: [..]
Es ist aber sinnvoller LANG wie vorgeschlagen nur für mail zu setzen:
LANG=blabla mail blabla
Ich hab's entsprechend geändert und es funktioniert genau so. Verstehen kann ich es aber, ehrlich gesagt, nicht, was passiert da? Wieso wird auf diese Weise LANG nur für mail gesetzt? *ratlos*
Bei dieser Syntax VARIABLENNAME=WERT PROGRAMM ARGUMENTE wird die Variable _nur_ für das aufgerufene Programm als Umgebungsvariable übergeben, die shell ergänzt die Umgebung für das aufgerufene Programm, ohne die eigene Umgebung zu ändern (wie das mit 'export' der Fall ist).
Siehe dazu auch
==== man bash ==== ENVIRONMENT When a program is invoked it is given an array of strings called the environment. This is a list of name-value pairs, of the form name=value. ====
und man 2 execve und man 3 exec.
-dnh
-- Die Signatur will nicht angezeigt werden. Die gewuenschte Signatur ist zur Zeit nicht verfuegbar. Moeglicherweise ist sie gerade im Urlaub oder hat einfach keine Lust angezeigt zu werden. Oder wollen Sie staendig beobachtet werden?
-- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
participants (4)
-
Christian Brabandt
-
David Haller
-
Jan Ritzerfeld
-
Rainer Wolff