Saya menggunakan zsh dan sangat menyukainya, tetapi banyak bekerja dengan sumber Android yang memiliki skrip kompilasi yang memerlukan bash untuk dievaluasi dengan benar. Script ini harus bersumber sebelum kompilasi dan mendefinisikan variabel lingkungan dan fungsi shell yang digunakan selama kompilasi.
Zsh tidak dapat sumber file ini, dan jika saya mencoba mengeluarkan emulate bash
shell saya menjadi tidak berfungsi dengan banyak kesalahan ini setiap kali saya menekan spasi (saya menggunakan oh-my-zsh, mungkin itu penyebabnya?):
url-quote-magic:24: bad pattern: ( ):/(|/localhost)/*
Apakah ada cara bagi saya untuk tidak beralih ke bash untuk mengevaluasi file-file ini, atau untuk memanggil instance bash dan mengimpor variabel / fungsi lingkungan baru yang didefinisikannya selama pencarian ke sesi zsh saya? Atau saya ditakdirkan untuk beralih ke bash setiap kali saya harus bekerja di Android?
EDIT : menemukan jawaban untuk pertanyaan saya sendiri. Sumber file menggunakan shell lain tampaknya tidak mungkin, tetapi dalam kasus file makro Android gagal, halaman ini membawa perbaikan:
http://nilvec.com/building-cyanogen-from-source/
Pada dasarnya, hanya pengaturan unsetopt nomatch
akan meminta zsh untuk berhenti mengeluh tentang wildcard yang tak tertandingi, yang cukup untuk membawa skrip selesai. Masih akan ada satu kesalahan yang tersisa, tentang penggunaan complete
perintah internal bash untuk menambahkan kemampuan penyelesaian ke satu makro Android, tetapi sama sekali tidak kritis di sini.