Я использую zsh и мне это очень нравится, но я много работаю с исходным кодом Android, который имеет скрипты компиляции, которые требуют правильной оценки bash. Эти сценарии должны быть получены до компиляции и определять переменные среды и функции оболочки, которые используются во время компиляции.
Zsh не может получить исходные файлы, и если я пытаюсь выдать emulate bash
свою оболочку, она становится нефункциональной, и каждый раз, когда я нажимаю пробел, я получаю множество таких ошибок (я использую oh-my-zsh, может, это причина?):
url-quote-magic:24: bad pattern: ( ):/(|/localhost)/*
Есть ли способ для меня не переключаться на bash для оценки этих файлов или вызывать экземпляр bash и импортировать новые переменные / функции окружения, которые он определил во время поиска, в мой сеанс zsh? Или я обречен переключаться на bash каждый раз, когда мне нужно работать на Android?
РЕДАКТИРОВАТЬ : нашел ответ на свой вопрос. Поиск файла с использованием другой оболочки не представляется возможным, но в случае сбоя макро-файлов Android эта страница принесла исправление:
http://nilvec.com/building-cyanogen-from-source/
По сути, простая установка unsetopt nomatch
заставит zsh перестать жаловаться на несоответствующие символы подстановки, что достаточно для завершения сценариев. Все еще останется одна ошибка, связанная с использованием complete
внутренней команды bash для добавления возможностей завершения к одному макросу Android, но здесь это абсолютно не критично.