Estou convertendo algumas funções do Zsh para rodar como scripts, e em uma delas preciso acessar valores em (por exemplo) $preexec_functions
. Tudo funciona perfeitamente nas funções, mas isso falha no script.
É possível acessar esse valor de um script?
Se esse código destina-se a acessar dados internos de seu shell interativo, eles não devem ser executados como programas separados (scripts), mas devem ser interpretados por esse shell, como funções, funções carregadas automaticamente ou scripts de origem .
Se a razão pela qual você deseja que eles sejam definidos como scripts é que você não deseja que eles poluam o ambiente do seu shell, você pode executá-los em subshells. Usar:
Ao invés de:
Se for porque você não deseja que a definição deles seja adicionada ao seu
~/.zshrc
, adicione-os a outro arquivo e obtenha esse arquivo de seu~/.zshrc
(source /path/to/that/file
) ou use funções carregáveis automaticamente.Se você ainda quiser executá-los como scripts/programas separados, precisará passar a definição dessas funções e tudo mais que o script possa precisar de uma forma ou de outra. Curti:
E tem
your-script
que fazer:Isso é despejar a definição dessa matriz e todas as funções que ela referencia como código shell e ter esse código interpretado pelo script para que a mesma matriz e funções sejam declaradas lá.