Prolog padrão para todos os scripts ZSH?


0

Eu tenho um arquivo que contém várias funções auxiliares, destinadas a serem usadas apenas em outros scripts ZSH. Eu não quero que eles sejam carregados com o meu perfil. Para disponibilizar essas funções no meu script, eu precisaria sourcedesse arquivo.

De alguma forma, é possível ter o script de prólogo automático (ou pré-script) carregado antes de todos os meus scripts ZSH?

Minha idéia atual é a alias -sextensão zsh para a função personalizada que tudo isso para mim:

  • concatenar arquivo de prólogo e script atual
  • chama zsh com essa entrada modificada

mas por enquanto não sou capaz de fazer isso (não durmo quase um dia). Por favor, alguém tem uma solução funcional?

Respostas:


1

Por que se preocupar com o apelido? Eu acredito que seria bom apenas fazer um script curto que origine seu script e depois chame zsh $@:

#!/bin/zsh
source my/script/path
$@

Então (se você o nomeou libload), funciona assim ./libload yourscript -options -options2

Você também pode simplesmente colocar seu código no arquivo, se isso for mais fácil. Além disso, deve ser possível adicionar algo como: #!/bin/zsh /path/to/libloadna parte superior de cada script, mas na minha configuração que não funciona corretamente no ATM por algum motivo. Mesmo assim, seria quase tão fácil adicionar source /path/to/your/scriptsa cada arquivo.

Provavelmente não é uma boa idéia usar o apelido de todas as chamadas para zsh. É melhor você criar um intérprete modificado como eu mostrei do que substituir o comando ZSH padrão (ou o padrão para qualquer outro intérprete).


sim, mas eu não gostaria de digitar libloadpara iniciar um pouco do meu script. Por enquanto, a zshextensão de aliasing para zsh funciona bem, então nem escrevo shebangs para meus scripts zsh. Esta é apenas uma questão de 'over'-otimização do ambiente;)
Igor Spasic

Então, por que não usar aliases de sufixo libload? alias -s zsh=libloaddeve funcionar muito bem.
Adaephon
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.