zshのbashを使用してシェルスクリプトを「ソース」にする方法は?


14

私はzshを使用しており、とても気に入っていますが、bashを正しく評価する必要のあるコンパイルスクリプトを含むAndroidソースで多くの作業をしています。これらのスクリプトは、コンパイルの前に入手し、コンパイル中に使用される環境変数とシェル関数を定義する必要があります。

Zshはこれらのファイルを取得できず、emulate bashスペースをヒットするたびにシェルが機能しなくなり、これらのエラーが大量に発生する場合(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に要求します。これは、スクリプトを完了させるのに十分です。complete1つのAndroidマクロに補完機能を追加するためのbash internalコマンドの使用に関するエラーが1つ残っていますが、ここでは絶対に重要ではありません。

回答:


4

コンパイルコマンドラインをbashスクリプトに入れて、コンパイルスクリプトがコンパイルコマンドを実行するようにすることができます。

何かのようなもの

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

    compile_command

次にcompile_command、手動で呼び出す代わりに、新しいbashスクリプトを呼び出すだけです。


これは潜在的なソリューションですが、残念ながら、環境スクリプトの完了には数秒かかり、コンパイルコマンドは大きく異なります。したがって、私はこれに頼って毎日仕事をすることはできません。
-Gnurou
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.