zshでこの問題のある変数割り当てをデバッグする方法は?

zshでこの問題のある変数割り当てをデバッグする方法は?

この奇妙な動作の原因をどのように見つけることができますか?

~ mary@advv
$ hsdhh() a=evil

~ mary@advv
$ echo "$a"
evil

~ mary@advv
$ a=good

~ mary@advv
$ echo "$a"
evil

修正するeval "$(fasd --init auto)":このエラーの原因を見つけて送信しました。質問。ありがとうございます!

ベストアンサー1

Zsh は各コマンドの前後にいくつかのコードを実行します。これは通常、プロンプトと端末のタイトルを更新するために使用されます。いくつかのコードはバグがあり、変数を修正したりa(これが発生した場合にのみa)、時には実行しないでください。

あなたのフック機能そしてデバッグトラップ:

which precmd
which preexec
which zshaddhistory
print -l $precmd_functions
print -l $preexec_functions
print -l $zshaddhistory_functions
which TRAPDEBUG
trap | grep DEBUG

何が起こっているのかを理解するもう1つの方法は、次を有効にすることです。

~ mary@advv
$ set -x
+ …
~ mary@advv
$ a=good
+ …
~ mary@advv
$ echo "$a"
evil

表示されるコードは上記のHookですが、その一部が犯人であることに違いありません。

範囲を狭めることができる実験は次のとおりです。

~ mary@advv
$ a=good; echo "$a"

おすすめ記事