O que é fornecer meu script de shell?

1

Eu tenho um .zshrc e um .zshenv no meu diretório inicial. Eu adicionei um novo comando ao meu .zshenv que eu descobri que estava sendo executado pelo menos 3 vezes. Percebi que estava acidentalmente source it do .zshrc , então removi essa linha, mas ela ainda está sendo executada duas vezes.

Eu tentei fazer o eco de $0 e $_ no script e recebo (~/.zshenv) (~/.zshenv) para a primeira passagem e (30) (zsh) para a segunda. O que isso poderia significar? Existe uma maneira melhor de obter um "rastreamento de pilha" mostrando meu chamador?

    
por Coderer 27.08.2013 / 10:32

2 respostas

3

Quando você invoca zsh , pode depurar o que está acontecendo usando a opção -x . É semelhante à opção bash do -x , onde mostra cada linha à medida que é executada, juntamente com os resultados.

$ zsh -x
    ...
+/etc/profile.d/mc.sh:3> alias 'mc=. /usr/libexec/mc/mc-wrapper.sh'
+_src_etc_profile_d:9> i=/etc/profile.d/PackageKit.sh
+_src_etc_profile_d:10> [ -r /etc/profile.d/PackageKit.sh ']'
+_src_etc_profile_d:11> . /etc/profile.d/PackageKit.sh
+_src_etc_profile_d:9> i=/etc/profile.d/qt.sh
+_src_etc_profile_d:10> [ -r /etc/profile.d/qt.sh ']'
+_src_etc_profile_d:11> . /etc/profile.d/qt.sh
+/etc/profile.d/qt.sh:9> [ -z /usr/lib64/qt-3.3 ']'
+_src_etc_profile_d:9> i=/etc/profile.d/udisks-bash-completion.sh
+_src_etc_profile_d:10> [ -r /etc/profile.d/udisks-bash-completion.sh ']'
+_src_etc_profile_d:11> . /etc/profile.d/udisks-bash-completion.sh
+/etc/profile.d/udisks-bash-completion.sh:3> [ -z '' ']'
+/etc/profile.d/udisks-bash-completion.sh:3> return
+_src_etc_profile_d:9> i=/etc/profile.d/vim.sh
+_src_etc_profile_d:10> [ -r /etc/profile.d/vim.sh ']'
+_src_etc_profile_d:11> . /etc/profile.d/vim.sh
+/etc/profile.d/vim.sh:1> [ -n '' -o -n '' -o -n 4.3.10 ']'
...

A saída também pode ser redirecionada para um arquivo para revisão posterior.

$ zsh -x 2>&1 | tee zsh.log

Isto parecerá travar no final, apenas Ctrl + c para pará-lo, e então verificar o arquivo de log resultante, zsh.log .

    
por 27.08.2013 / 11:09
0

Você aplicou alterações com source ~/.zshrc ? Ou desconectou-se e voltou para as alterações entrarem em vigor.

    
por 27.08.2013 / 10:36