コマンドが入力されていない場合にzshでコマンドを実行するように設定する

コマンドが入力されていない場合にzshでコマンドを実行するように設定する

端末プロンプトに入力していますが、実際には何も入力しないことを決めたと想像してみてください。代わりにEnterキーを押すだけです。

今zshにコマンドを実行させる方法はありますか?

zたとえば、最後のコマンドを繰り返すか、最後のコマンドが空のプロンプトでEnterキーを押すとrunを実行するなど、潜在的にこのコマンド変数を作成したいと思いますecho $PWD

どうすればいいですか?

ベストアンサー1

preexec以下を使って接続してみることができますprecmd

preexec(){ cmd=$1; }
precmd(){ if [ "$cmd" ]; then lcmd=$cmd; cmd=; else; echo "<no command> last was <$lcmd>"; fi; }

zsh$ :
zsh$
<no command> last was <:>
zsh$ pwd
/home2/ahq

Hook Functionszshmisc(1)マンページのすべてのセクション、特にに渡されたパラメータのセクションを読む必要がありますpreexec

また、以下を使用できます。add-zsh-hook:

autoload -Uz add-zsh-hook
add-zsh-hook -Uz precmd my_precmd

おすすめ記事