[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: bash-Frage



Hallo Gregor,

Gregor Schneider <rc46fi@googlemail.com> writes:

> ich moechte mal wieder dazu lernen, daher mal eine Frage an die Leute
> mit Plan, die hier so rumschwirren:
>
> Wenn ich
>
> echo "No JUnit- / Looper-Tests performed!" | mail -s "Rex IMMEDIATE
> builds : Passed!" somemailadress@mycompany.com
>
> angebe, erhalte ich die folgende Fehlemeldung:
>
> bash: !": event not found
>
> Setze ich jedoch ein Leerzeichen jeweils zwischen ! und " (also
>
> echo "No JUnit- / Looper-Tests performed! " | mail -s "Rex IMMEDIATE
> builds : Passed! " somemailadress@mycompany.com
>
> funktioniert's.
>
> Was wertet die Shell denn hier aus? Bisher war mir nicht bewusst, dass
> ein Ausrufezeichen vor einem doppelten Anfuehrungszeichen irgendeine
> Funktion in der Shell beinhaltet.

Es ist ein etwas obskures Feature der bash, das nur in interaktiven
Shells eingeschaltet ist. Schau mal in der bash-Manpage im Abschnitt
»HISTORY EXPANSION« nach, was es bewirkt.

Dass das Ausrufezeichen auch innerhalb eines Strings ein Sonderzeichen
ist, finde ich etwas unglücklich. Als ich diese komische Fehlermeldung
(»event not found«) das erste Mal zu Gesicht bekam, habe ich mich auch
ratlos am Kopf gekratzt.

Viele Grüße,
Sven



Reply to: