Come 'fonte' uno script di shell usando bash da zsh?


14

Sto usando zsh e mi piace molto, ma lavoro molto con sorgenti Android che hanno script di compilazione che richiedono che bash sia valutato correttamente. Questi script devono essere forniti prima della compilazione e definire le variabili di ambiente e le funzioni shell utilizzate durante la compilazione.

Zsh non può procurarsi questi file, e se provo a rilasciare la emulate bashmia shell diventa non funzionale con molti di questi errori ogni volta che colpisco lo spazio (sto usando oh-my-zsh, forse questa è una causa?):

url-quote-magic:24: bad pattern: ( ):/(|/localhost)/*

C'è un modo per me di non passare a bash per valutare questi file o di invocare un'istanza di bash e importare le nuove variabili / funzioni degli ambienti che ha definito durante l'approvvigionamento nella mia sessione zsh? O sono condannato a passare a bash ogni volta che devo lavorare su Android?

EDIT : ho trovato una risposta alla mia domanda. Sourcing di un file usando un'altra shell non sembra essere possibile, ma in caso di errore dei file macro Android, questa pagina ha portato una soluzione:

http://nilvec.com/building-cyanogen-from-source/

Fondamentalmente, semplicemente l'impostazione unsetopt nomatchchiederà a zsh di smettere di lamentarsi dei caratteri jolly senza eguali, il che è abbastanza per portare a termine gli script. Rimarrà ancora un errore, sull'uso del completecomando interno bash per aggiungere funzionalità di completamento a una macro Android, ma qui non è assolutamente critico.

Risposte:


4

È possibile inserire la riga di comando della compilation in uno script bash, che genera il bevor degli script della compilation che esegue il comando compilation.

Qualcosa di simile a

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

    compile_command

Quindi invece di invocare compile_commanda mano, invochi semplicemente il tuo nuovo script bash.


Questa è una potenziale soluzione, ma sfortunatamente gli script per l'ambiente impiegano diversi secondi per completare e il comando di compilazione varia molto. Pertanto non posso fare affidamento su questo per lavorare ogni giorno.
Gnurou,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.