有什么可以帮助我吗?
原始
➜ ~ find
here preexec block...
usage: find [-H | -L | -P] [-EXdsx] [-f path] path ... [expression]
find [-H | -L | -P] [-EXdsx] -f path [path ...] [expression]
我想这样!
➜ ~ find
here preexec block...
haha!find disable by super manager
➜ ~
我试图在zsh.define zshrc中使用preexec precmd hook函数
precmd(){
# echo 'here precmd block...'
echo 'here precmd block...'
if [[ "npm" == "$1" ]];
then
echo 'haha 123'
exit 0
fi
}
preexec(){
echo 'here preexec block...'
if [[ "npm" == "$1" ]];
then
echo 'haha 123'
exit 0
fi
}
但是结果是杀死了外壳。
答案 0 :(得分:1)
这是Use preexec() to evaluate entered command
的变体要点是preexec是在shell的上下文中执行的(因此,如果退出则将杀死shell),它不提供更改或取消正在执行的命令的功能,但是您应该能够进入accept-buffer
做你想做的事。
一个更简单的选择是将要禁用的可执行文件简单地别名为其他内容:
> alias find=echo
> find . -name 'foo'
. -name foo
尽管它仅适用于通用查找,不适用于通过/ bin / env或可执行文件路径进行的专门查找。