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 bash
moją 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 nomatch
spowoduje, ż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 complete
wewnętrznego polecenia bash w celu dodania możliwości uzupełniania do jednego makra Androida, ale tutaj absolutnie nie jest to krytyczne.