Im Grunde nach einer Zeichenfolge suchen, die ein Sternchen enthält, suchte nach einer, die sich auf eine bis Schleife bezieht, aber ohne Erfolg!Test, ob eine Zeichenfolge ein literales Sternchen enthält
z.B. der Benutzer würde im Grunde immer in Strings eingeben und das Programm wird sie ablehnen, bis eine, die ein Sternchen hat, erscheint.
dann an diesem Punkt wird es eine Nachricht echo [kippe gehen in die Details traurig]
Code:
until [ "string" == "[asteriskstuff]" ]
do
echo "just give me a string with an asterisk for crying out loud"
read "string"
done
, wenn der Benutzer die Eingabe beendet hallo und entscheidet dann zur Eingabe hallo * es wird dann zeigen die Echobotschaft grundsätzlich möchte ich nur das bluten asterisk umgehen, weil [asteriskstuff] der Bereich ist, in dem ich immer schwanke!
alle helfen geschätzt!
ZUSAMMENFASSUNG: Wie kann ich ein Sternchen auf einfache Weise für eine Vor-Schleife umgehen?
Wir müssen wissen, woher asteriskstuff stammt.Es ist eine Variable? Hat es einen wörtlichen Teil? –
'[]' ist ein alternativer Name für [der POSIX-spezifizierte Befehl 'test'] (http://pubs.opengroup.org/onlinepubs/9699919799/utilities/test.html) Der einzige String-Vergleichsoperator, den der Standard zur Unterstützung garantiert, ist' = ', nicht' == '(und es gibt keine Standard- definierter Teilstring-Match-Vorgang überhaupt). Bash unterstützt '== 'als Erweiterung, aber wenn Sie Erweiterungen wünschen, sollten Sie' [[]] 'stattdessen verwenden, was die * explizit * erweiterte Form des Operators ist, der auch Globbing, reguläre Ausdrücke und viele davon unterstützt andere Güte. –
BTW, es ist in keiner Weise klar, was Sie mit den meisten dieser Nachricht meinen. Was meinst du mit dem Wort "umgehen" in "ein Asterisk umgehen"? Willst du den gleichen Vergleich bekommen, hättest du ** ohne ** das Sternchen da? Möchten Sie die Schleife in diesem Zustand verlassen? Etwas anderes? –