Ich habe Probleme beim Ausführen eines Bash-Skripts zsh. Das Skript ähnelt dem folgenden und soll unter bash ausgeführt werden:
#!/bin/bash
echo "<235234>" | egrep -oe [0-9]+
Meine Shell ist jedoch standardmäßig aktiviert. Um zshdas obige Skript auszuführen, geben Sie /bin/bashan meiner zshEingabeaufforderung Folgendes ein und führen Sie dann aus . script.sh.
Dies führt jedoch zu einem Fehler und ich erhalte:
zsh: no matches found: [0-9]+
(Ich sollte 235234stattdessen bekommen ).
An diesem Punkt bin ich verwirrt und habe folgende Fragen:
- Wenn ich in bin
bash, warum wird mir ein Fehler gemeldetzsh? - Warum schlägt der
egrepreguläre Ausdruck fehl? Der reguläre Ausdruck sieht für mich richtig aus.
Hinweis: Falls es darauf ankommt, sollte ich das Skript nicht ändern (das Skript wird von mehreren Benutzern gemeinsam genutzt und wir dürfen keine Änderungen daran vornehmen).
Vielen Dank
exec zshauf meinem~/.bashrcnoch auf meinem habe~/.profile(ich habe nicht einmal ein.profilein meinem Home-Verzeichnis). Ich kann mich nicht erinnern, wie ich es geschafft habe,zshmeine Standard-Shell zu erstellen. Entschuldigen Sie auch die Verwirrung, aber die erste Zeile in meinem Skript ist der Shebang#!/bin/bash. Daher weiß ich immer noch nicht, warum das Sourcing der Dateizshnicht funktioniert (wenn Sie darüber nachdenken, lassen Sie es mich wissen). In beiden Fällen werde ich mich an den Administrator wenden, um das Skript zu aktualisieren und dem regulären Ausdruck Anführungszeichen hinzuzufügen.