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


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

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-02-06 01:48 +0100
Organization Aioe.org NNTP Server
Message-ID <83fsow6cs2.fsf@helmutwaitzmann.news.arcor.de> (permalink)
References <j57rjoFtefpU1@mid.individual.net> <83mtjja2ua.fsf@helmutwaitzmann.news.arcor.de> <sss3c5.5g8.1@stefan.msgid.phost.de> <83h79i6wc9.fsf@helmutwaitzmann.news.arcor.de> <sth3dk.49g.1@stefan.msgid.phost.de>

Show all headers | View raw


Stefan Reuther <stefan.news@arcor.de>:
>Am 01.02.2022 um 23:44 schrieb Helmut Waitzmann:
>> Stefan Reuther <stefan.news@arcor.de>:
>> Der Text 
>>
>>> https://wiki.ubuntuusers.de/Shell/Bash-Skripting-Guide_f%C3%BCr_Anf%C3%A4nger/
>
>Das ist ein Wiki und freut sich bestimmt über deine Verbesserungen. 
>

Im Prinzip, ja.  Solang da oben drüber aber «Bitte aktiviere 
Javascript!» steht, hat es bei mir verloren.

>> ist beim Thema «Quoting» mangelhaft:  Er zäumt das Pferd vom 
>> falschen Ende auf, weil er das Anführungszeichen («"») als das am 
>> besten geeignete Quoting‐Verfahren anführt, obwohl damit längst 
>> nicht alle Sonderzeichen ihrer Sonderbedeutung entledigt werden.  
>> Im Gegenteil behalten manche Sonderzeichen unter gewissen 
>> Umständen ihre Sonderbedeutung.
>>
>> Ein besseres Quoting‐Verfahren ist der Apostroph («'») gemeinsam 
>> mit dem umgekehrten Schrägstrich (Backslash, «\»):  Damit lassen 
>> sich wirklich alle Zeichen ihrer Sonderbedeutung entledigen.
>
>Mit dem Apostroph kannst du keine Strings bauen, die einen 
>Apostroph beinhalten.

Der Apostroph kann nicht in Apostrophe eingefasst werden, das ist 
richtig:  Er beendet statt dessen die Einfassung.

Das ist aber kein Problem, weil Einfassungen keine wort‐trennende 
Eigenschaft haben.  Deshalb kann man jeden Apostroph unterbringen, 
indem man die Einfassung in Apostrophe beendet, den 
unterzubringenden Apostroph durch Einfassung in Anführungszeichen 
oder durch Voranstellen eines «\» seiner eine Einfassung beginnende 
oder endende Wirkung beraubt und anschließend eine neue Einfassung 
beginnt.

Beispiel:  Der Text 


   "Konrad!", sprach die Frau Mama,
   "Ich geh' aus, und du bleibst da!
   Bleib hübsch ordentlich und fromm,
   bis nach Haus' ich wieder komm'!"


kann mittels «printf» so ausgegeben werden: 


  printf '%s\n' \
    '"Konrad!", sprach die Frau Mama,' \
    '"Ich geh'\'' aus, und du bleibst da!' \
    'Bleib hübsch ordentlich und fromm,' \
    'bis nach Haus'\'' ich wieder komm'\''!"'


>Mit dem doppelten Anführungszeichen ist das kein Problem: vor 
>alles, was Sonderbedeutung hat, einfach ein \: echo "hallo'\"\\"

Ich habe Zweifel daran, dass gerade Anfänger wissen, was bei 
Einfassung in Anführungszeichen eine Sonderbedeutung hat.

>Mit Apostroph wäre das echo 'hallo'"'"'"\', ist jetzt nicht 
>wirklich besser.

Bei der Einfassung in Apostrophen ist die Regel einfacher:  Alles 
außer Apostrophe kann in Apostophe eingefasst werden.  Eingefasste 
Zeichen mit Sonderbedeutung gibt es nicht.  Apostrophe können nicht 
in Apostrophe eingefasst werden.  Sie müssen deshalb entweder in 
Anführungszeichen eingefasst oder ohne Einfassung mit einem «\» 
maskiert werden.

>> Und so kann man dann in von Skripting‐Anfängern geschriebenen 
>> Shell‐Skripten gerne mal
>>
>>   … | grep -q -e …
>>   if test "$?" -eq 0
>
>Stimmt zwar, würde ich aber nicht diesem Tutorial anlasten. Das ist 
>so alt wie der useless-use-of-cat.

Gut möglich.  Trotzdem sollte das (ebenso wie useless‐use‐of‐cat) in 
einem Tutorial nicht auch noch gelehrt werden, zumal es im Fall der 
aktivierten Shell‐Option «-e» zu nicht‐beabsichtigtem Verhalten 
führt.

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