我正在使用zsh并非常喜欢它,但是可以使用很多Android源代码,因为这些源代码具有需要正确评估bash的编译脚本。这些脚本需要在编译之前获取,并定义在编译期间使用的环境变量和shell函数。
Zsh无法获取这些文件,并且如果我尝试发出命令,则我emulate bash
每次进入空格时,shell就会由于许多错误而变得无法正常工作(我正在使用oh-my-zsh,也许是原因吗?):
url-quote-magic:24: bad pattern: ( ):/(|/localhost)/*
有没有办法让我不切换到bash来评估这些文件,或者不调用bash实例并导入在将其采购到zsh会话期间定义的新环境变量/函数?还是我注定每次需要在Android上工作时都要切换到bash?
编辑:找到了我自己的问题的答案。似乎无法使用其他外壳提供文件,但是在Android宏文件失败的情况下,此页面进行了修复:
http://nilvec.com/building-cyanogen-from-source/
基本上,简单地设置unsetopt nomatch
将要求zsh停止抱怨不匹配的通配符,这足以使脚本完成。关于使用complete
bash内部命令向一个Android宏添加完成功能的问题仍然存在一个错误,但这绝对不是关键。