Ich benutze zsh und mag es sehr, aber ich arbeite viel mit Android-Quellen, die Kompilierungsskripte enthalten, die eine korrekte Auswertung von bash erfordern. Diese Skripte müssen vor dem Kompilieren bereitgestellt werden und Umgebungsvariablen und Shell-Funktionen definieren, die während des Kompilierens verwendet werden.
Zsh kann diese Dateien nicht als Quelle verwenden, und wenn ich versuche, emulate bash
meine Shell auszugeben, wird sie bei jedem Drücken der Leertaste funktionsunfähig. (Ich verwende oh-my-zsh. Vielleicht ist das eine Ursache?):
url-quote-magic:24: bad pattern: ( ):/(|/localhost)/*
Gibt es eine Möglichkeit für mich, nicht auf bash zu wechseln, um diese Dateien auszuwerten, oder eine bash-Instanz aufzurufen und die neuen Umgebungsvariablen / -funktionen, die während des Sourcing definiert wurden, in meine zsh-Sitzung zu importieren? Oder bin ich dazu verdammt, jedes Mal auf Bash umzusteigen, wenn ich mit Android arbeiten muss?
EDIT : habe eine Antwort auf meine eigene Frage gefunden. Das Beschaffen einer Datei mit einer anderen Shell scheint nicht möglich zu sein, aber im Fall, dass Android-Makrodateien fehlschlagen, brachte diese Seite einen Fix:
http://nilvec.com/building-cyanogen-from-source/
Grundsätzlich unsetopt nomatch
wird zsh durch einfaches Setzen aufgefordert, sich nicht mehr über nicht übereinstimmende Platzhalter zu beschweren, was ausreicht, um die Skripte zu vervollständigen. Es bleibt noch ein Fehler bezüglich der Verwendung des complete
internen Befehls bash, um einem Android-Makro Vervollständigungsfunktionen hinzuzufügen, der hier jedoch absolut nicht kritisch ist.