我想对发送给fish的所有命令进行预处理。我知道这可以通过fish_preexec来完成,因为它将文字命令作为参数进行传递。但是,我也希望在某些特定条件下完全阻止命令执行。我不想退出fish shell;我想让当前shell保持活动状态,只打印一条"command not executed"消息。
鱼支持这样的东西吗?
发布于 2018-06-22 21:22:05
这很棘手,但您可以通过将Enter键重新绑定到自定义函数来完成此操作,如下所示:
function execute_ifnotls
if test (commandline) = 'ls'
echo
echo "No"
commandline ""
commandline -f repaint
else
commandline -f execute
end
end
bind \r execute_ifnotls
bind \n execute_ifnotls产生:
> ls
No
> whoami
davidhttps://stackoverflow.com/questions/50979775
复制相似问题