Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > de.comp.os.unix.linux.misc > #121016

Re: Sonderzeichen in Skripten

From Helmut Waitzmann <nn.throttle@xoxy.net>
Newsgroups de.comp.os.unix.linux.misc
Subject Re: Sonderzeichen in Skripten
Date 2022-01-25 23:05 +0100
Organization Aioe.org NNTP Server
Message-ID <83mtjja2ua.fsf@helmutwaitzmann.news.arcor.de> (permalink)
References <j57rjoFtefpU1@mid.individual.net>

Show all headers | View raw


Albrecht Mehl <unvalid@invalid.invalid>:

>Auf der Seite
>
>
>https://de.moyens.net/linux/die-bash-sonderzeichen-die-sie-kennen-sollten/
>
>sind etliche erklärt.

Diese Seite lohnt sich nicht, zu lesen:  Sie ist in wirklich 
lausigem Deutsch verfasst und erklärt auch inhaltlich nichts 
gescheit.

Beispielsweise der Abschnitt «Rohre» (pipes) bringt im Rahmen seines 
Versuchs, Rohre zu erklären, plötzlich den Begriff «Pfeife», ohne zu 
sagen, was er bedeutet, und erklärt auch nicht, was beim Verbinden 
zweier Prozesse mit einem Rohr wirklich geschieht.

Wer mit dem Bash programmieren will, muss dessen Sprache sowohl nach 
ihrer Syntax (also der sprachlichen Grammatik) als auch nach ihrer 
Semantik (also ihrer Wirkung) verstehen.  Dazu ist es vor allem 
wichtig, Unix oder Linux zu verstehen: welche Systemfunktionen es 
den auf ihm laufenden Programmen  und damit auch dem Bash – anbietet 
und, was die Systemfunktionen bewirken.

Dann kann man beim Bash sehen, dass einige dieser Systemfunktionen – 
leider nicht alle – sich in der Programmiersprache «bash» 
niederschlagen.

Irgendwelche Kochrezepte für «bash»‐Skripte reichen da nicht aus, um 
ein Verständnis der Materie zu gewinnen.

>Nicht gesehen habe ich aber 
>
>
>  - & am Ende eines Befehls 
>

Das bedeutet, dass der Shell den Befehl als neuen Prozess startet, 
und, dass der Shell nicht wartet, bis der neue Prozess zu Ende 
gekommen sein wird, sondern sofort mit der weiteren Abarbeitung des 
Shell‐Skripts fortfährt.

Wenn der Shell sein Skript mit abgeschaltetem Job‐Control 
abarbeitet – das ist bei Shell‐Skripten der Normalfall –, sagt das 
«&» dem Shell außerdem, dass er den Befehl mit auf das Gerät 
«/dev/null» umgelenkter Standardeingabe starten soll.  Wenn der 
Befehl dann also etwas aus seiner Standardeingabe lesen will, wird 
er nichts erhalten, weil man aus «/dev/null» nichts herauslesen 
kann.

Beispiel:  Der Befehl 


   rm -i -- eine_Datei &


startet das «rm»‐Programm.  Der Parameter «-i» veranlasst das 
Programm, nachzufragen, ob es die Datei «eine_Datei» wirklich 
entfernen soll:  Der Anwender muss dann ein «y» (für «yes», in 
deutscher Spracheinstellung möglicherweise auch «j» für «ja») 
eintippen, wenn er die Datei wirklich entfernt haben will.

Weil die Standardeingabe aber von «/dev/null» statt vom Terminal 
(«/dev/tty») lesen will, wird das Programm «rm» keine Antwort – 
genau genommen: die leere Antwort – erhalten und deshalb davon 
absehen, die Datei «eine_Datei» zu entfernen.

>  - && zwischen zwei Befehlen. Unterschied zu ;  ? 
>

Jeder Befehl im Shell liefert bei seinem Ende dem Shell eine Zahl 
ab, exit status genannt.  Per allgemeiner Konvention bedeutet der 
Wert 0, dass der Befehl seine Aufgabe hat fehlerfrei durchführen 
können.  Alle anderen Werte zeigen per Konvention an, dass der 
Befehl gescheitert ist.  (Aber lies vor Verwendung eines Befehls 
immer in seinem Handbuch nach, welche Zahlen bei ihm welche 
Bedeutung haben!)

Der zusammengesetzte Befehl 


   erster_Befehl && zweiter_Befehl


weist den Shell an, den ersten Befehl zu starten, auf sein Ende zu 
warten, den exit status entgegenzunehmen und anschließend den 
zweiten Befehl nur dann zu starten, wenn der exit status des ersten 
Befehls 0 war.

Wenn hingegen «;» statt «&&» dasteht, hängt es von der mit den 
Shell‐Befehlen

   set +e

bzw.

   set -e

gemachten Einstellung ab, ob der Shell (im Fall «set +e») den 
zweiten Befehl ungeachtet des exit status' des ersten Befehls immer 
startet oder (im Fall «set -e») im Fall, dass der exit status des 
ersten Befehls nicht 0 war, davon absieht, den zweiten Befehl zu 
starten sondern sich statt dessen selber beendet.

Back to de.comp.os.unix.linux.misc | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

Sonderzeichen in Skripten Albrecht Mehl <unvalid@invalid.invalid> - 2022-01-24 15:32 +0100
  Re: Sonderzeichen in Skripten Marco Moock <mo01@posteo.de> - 2022-01-24 15:51 +0100
  Re: Sonderzeichen in Skripten Helmut Waitzmann <nn.throttle@xoxy.net> - 2022-01-25 23:05 +0100
    Re: Sonderzeichen in Skripten Hermann Riemann <nospam.ng@hermann-riemann.de> - 2022-01-26 10:48 +0100
    Re: Sonderzeichen in Skripten Stefan Reuther <stefan.news@arcor.de> - 2022-01-26 18:19 +0100
      Re: Sonderzeichen in Skripten Andreas Kohlbach <ank@spamfence.net> - 2022-01-26 15:35 -0500
      Re: Sonderzeichen in Skripten Helmut Waitzmann <nn.throttle@xoxy.net> - 2022-02-01 23:44 +0100
        Re: Sonderzeichen in Skripten Stefan Reuther <stefan.news@arcor.de> - 2022-02-03 17:29 +0100
          Re: Sonderzeichen in Skripten Helmut Waitzmann <nn.throttle@xoxy.net> - 2022-02-06 01:48 +0100
            Re: Sonderzeichen in Skripten Arno Welzel <usenet@arnowelzel.de> - 2022-02-09 14:08 +0100
              Re: Sonderzeichen in Skripten Hermann Riemann <nospam.ng@hermann-riemann.de> - 2022-02-09 14:56 +0100
                Re: Sonderzeichen in Skripten Arno Welzel <usenet@arnowelzel.de> - 2022-02-09 15:43 +0100
                Re: Sonderzeichen in Skripten Hermann Riemann <nospam.ng@hermann-riemann.de> - 2022-02-09 16:13 +0100
                Re: Sonderzeichen in Skripten Arno Welzel <usenet@arnowelzel.de> - 2022-02-10 17:35 +0100
              Re: Sonderzeichen in Skripten Marcus Jodorf <trap@killfile.de> - 2022-02-11 17:08 +0100
                Re: Sonderzeichen in Skripten Arno Welzel <usenet@arnowelzel.de> - 2022-02-12 11:04 +0100
                Re: Sonderzeichen in Skripten Albrecht Mehl <unvalid@invalid.invalid> - 2022-02-12 14:21 +0100
                Re: Sonderzeichen in Skripten Martin Schnitkemper <news.trash.5.mschnitk@spamgourmet.com> - 2022-02-12 23:36 +0100
                Re: Sonderzeichen in Skripten Arno Welzel <usenet@arnowelzel.de> - 2022-02-13 11:16 +0100
  Re: Sonderzeichen in Skripten Michael Schütz <der.schultze@web.de> - 2022-01-27 07:17 +0100
    Re: Sonderzeichen in Skripten Dr Eberhard W Lisse <nospam@lisse.NA> - 2022-01-30 23:53 +0200
  Re: Sonderzeichen in Skripten JJenssen <joemajen@arcor.de> - 2022-01-31 11:18 +0100

csiph-web