Używam zsh i bardzo mi się podoba, ale dużo pracuję ze źródłem Androida, który ma skrypty kompilacyjne, które wymagają poprawnej oceny bash. Skrypty te należy uzyskać przed kompilacją i zdefiniować zmienne środowiskowe i funkcje powłoki używane podczas kompilacji.
Zsh nie może źródła tych plików, a jeśli spróbuję wydać emulate bashmoją powłokę, przestaje działać z dużą ilością tych błędów za każdym razem, gdy trafiam w spację (używam oh-my-zsh, może to jest przyczyna?):
url-quote-magic:24: bad pattern: ( ):/(|/localhost)/*
Czy jest sposób dla mnie, aby nie przełączać się na bash, aby ocenić te pliki, lub wywołać instancję bash i zaimportować nowe zmienne środowiskowe / funkcje zdefiniowane podczas pobierania do mojej sesji zsh? Czy jestem skazany na przejście na bash za każdym razem, gdy muszę pracować na Androidzie?
EDYCJA : znalazłem odpowiedź na moje własne pytanie. Pozyskanie pliku przy użyciu innej powłoki nie wydaje się możliwe, ale w przypadku awarii plików makr systemu Android ta strona przyniosła poprawkę:
http://nilvec.com/building-cyanogen-from-source/
Zasadniczo po prostu ustawienie unsetopt nomatchspowoduje, że zsh przestanie narzekać na niedopasowane symbole wieloznaczne, co wystarczy, aby skrypty zostały ukończone. Pozostanie jeszcze jeden błąd dotyczący użycia completewewnętrznego polecenia bash w celu dodania możliwości uzupełniania do jednego makra Androida, ale tutaj absolutnie nie jest to krytyczne.