Como 'fonte' um script de shell usando o bash do zsh?

14

Estou usando o zsh e gosto muito dele, mas trabalho muito com o Android, que tem scripts de compilação que exigem que o bash seja avaliado corretamente. Esses scripts precisam ser originados antes da compilação e definir variáveis de ambiente e funções de shell usadas durante a compilação.

O Zsh não pode fornecer esses arquivos, e se eu tentar emitir emulate bash meu shell se torna não-funcional com muitos desses erros toda vez que eu atingir o espaço (eu estou usando oh-my-zsh, talvez seja uma causa? ):

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

Existe uma maneira de eu não mudar para o bash para avaliar esses arquivos, ou invocar uma instância do bash e importar as novas variáveis / funções do ambiente que ele definiu durante o sourcing na minha sessão zsh? Ou estou fadado a mudar para bater toda vez que eu precisar trabalhar no Android?

EDIT : encontrou uma resposta para minha própria pergunta. A obtenção de um arquivo usando outro shell não parece ser possível, mas no caso de arquivos de macros do Android falharem, esta página trouxe uma correção:

link

Basicamente, simplesmente definir unsetopt nomatch solicitará que o zsh pare de reclamar sobre curingas não correspondentes, o que é suficiente para concluir os scripts. Ainda haverá um erro restante, sobre o uso do comando complete bash internal para adicionar recursos de conclusão a uma macro Android, mas isso não é absolutamente crítico aqui.

    
por Gnurou 08.02.2012 / 10:14

1 resposta

4

Você pode colocar sua linha de comando de compilação em um script bash, que cria os scripts de compilação antes de executar o comando de compilação.

Algo como

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

    compile_command

Então, em vez de invocar compile_command manualmente, você invoca seu novo script bash.

    
por 08.02.2012 / 10:49