如何使用zsh的bash来“获取” shell脚本?


14

我正在使用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停止抱怨不匹配的通配符,这足以使脚本完成。关于使用completebash内部命令向一个Android宏添加完成功能的问题仍然存在一个错误,但这绝对不是关键。

Answers:


4

您可以将编译命令行放置在bash脚本中,该脚本可在执行bash脚本之前提供编译脚本。

就像是

    #!/bin/bash
    . /path/to/environmentscript
    . /path/to/morefunctionsscript

    compile_command

然后compile_command,您无需手工调用,而只需调用新的bash脚本。


这是一个潜在的解决方案,但是不幸的是,环境脚本需要花费几秒钟才能完成,并且compile命令变化很大。因此,我不能依靠它每天工作。
Gnurou
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.