Hi, Am Sonntag 28 September 2014, 15:05:18 schrieben Sie:
On Sun, Sep 28, 2014 at 02:26:25PM +0200, Dr. Juergen Vollmer wrote:
Hallo allerseits,
nach dem Update der BASH (due to shellshock) macht "at" Probleme:
echo abc | at now
erzeugt eine Datei unter /var/spool/atjobs, die folegnde Zeile enthält:
BASH_FUNC_mc()=\(\)\ {\ \ .\ /usr/share/mc/mc-wrapper.sh" "}; export BASH_FUNC_mc()
da nun nach der schliessenden } Klammer noch Code seht, wirft die BASH einen Fehler und das Kommando "echo abc" wird nicht ausgeführt.
Meine Frage: wo kommt diese Definition von BASH_FUNC_mc her?
von /etc/profile.d/mc.sh
Das macht: mc () { . /usr/share/mc/bin/mc-wrapper.sh } if [ -n "$BASH_VERSION" ] then export -f mc fi
und das export -f exportiert die funktion "mc", jetzt unter dem Namen BASH_FUNC_mc().
aber wo kommt der ; her und wies so steht das Ganze dann in einer Zeile?
Was jetzt spannend ist, wieso obiges abc nicht mehr auftaucht.
steht in der Datei drin, aber der at-job wird nicht ausgeführt da die Definition der Bashfunktion syntaktisch falsch ist. Daher wird das Script nicht ausgeführt. Wer baut eigentlich das Scipt zusammen, das mit at ausgeführt werden soll. Hier liegt nämlich der Fehler. Richtig müsste es wohl so aussehen: BASH_FUNC_mc()=\(\)\ {\ \ .\ /usr/share/mc/mc-wrapper.sh" "} export BASH_FUNC_mc() also ohne ; und das export auf einer separten Zeile Bye Jürgen -- Dr.rer.nat. Jürgen Vollmer, Am Rennbuckel 21, D-76185 Karlsruhe Tel: +49(721) 92 04 87 1 Fax: +49(721) 92 04 87 2 Juergen.Vollmer@informatik-vollmer.de www.informatik-vollmer.de ------------------------------------------------------------------------------- Diese EMail ist elektronisch mittels GPG / PGP signiert. Diese elektronische Unterschrift ist in einem EMail-Anhang enthalten. Leider kann die Signatur ohne die Installation entsprechender Programme weder geprüft noch angezeigt werden. Mehr dazu unter: http://www.gnupg.org oder auch http://www.pgpi.org -------------------------------------------------------------------------------