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 zsh
das obige Skript auszuführen, geben Sie /bin/bash
an meiner zsh
Eingabeaufforderung 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 235234
stattdessen 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
egrep
regulä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 zsh
auf meinem~/.bashrc
noch auf meinem habe~/.profile
(ich habe nicht einmal ein.profile
in meinem Home-Verzeichnis). Ich kann mich nicht erinnern, wie ich es geschafft habe,zsh
meine 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 Dateizsh
nicht 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.egrep
.