Re: script Frage

From: Polytropon <freebsd(at)edvax.de>
Date: Sat, 18 Apr 2009 21:36:35 +0200

On Sat, 18 Apr 2009 21:02:34 +0200, "Daniel C. Dowse" <dcdowse(at)gmx.net> wrote:
> das \ ist fuer die direkte eingabe gedacht. also um im Terminal ein
> Newline zu erzeugen.

Hmmm... ich dachte immer, es wäre genau das Gegenteil, d. h. ein
Mittel, um der Shell, die vom Terminal liest, zu zeigen, daß das
folgende Newline eben *kein* Newline sein soll, was ja üblicher-
weise die Shell veranlaßt, den gerade gegebenen Befehl auszuführen.

        % ls \ <=== noch nicht ausführen
        -laFG /etc <=== jetzt komplett: ls -laFG /etc ausführen

        % ls <=== ls ausführen
        % -laFG /etc <=== kennichnich

In Skripten, wo es sinngemäß heißt, daß eine Zeile einem Befehl
(oder einer Befehlsfolge) entspricht, ist das ebenso. Ein gutes
Beispiel ist Makefile, wo make pro Zeile eine Shell aufmacht und
den Befehl dann ausführt; soll ein Befehl über mehrere Zeilen
gehen, dient \ dazu, den Zeilenumbruch zu maskieren, d. h. ihn
seiner Funktion zu berauben.

        irgendein_ziel: bla bli
                if [ "$(LLSTIL)" = "qual" ]; then \
                        echo " (qualifizierter Lebenslauf)"; \
                else \
                        echo " (persoenlicher Lebenslauf)"; \
                fi

Wollte man also die \ weglassen, müßte alles in ein und derselben
Zeile stehen.

Im Gegensatz dazu dient bei sh-Skripten die Leere Anweisung ;
dazu, einen Zeilenumbruch vorzuspiegeln, also quasi dazu, wie
Du sagtest, ein Newline zu erzeugen:

        for f in *.txt; do
                cp $f /tmp
        done

Wird ; weggelassen, muß ein echtes Newline erfolgen:

        for f in *.txt
        do
                cp $f /tmp
        done

Hoffentlich sind damit alle Klarheiten hinreichend beseitigt. :-)

PS. Auch in C kennt man ; in beliebten Beschäftigungstherapien
    wie for(;;); und while(1);. :-)

-- 
Polytropon
>From Magdeburg, Germany
Happy FreeBSD user since 4.0
Andra moi ennepe, Mousa, ...
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Sat 18 Apr 2009 - 21:36:49 CEST

search this site