首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >阻止通过fish_preexec执行fish命令

阻止通过fish_preexec执行fish命令
EN

Stack Overflow用户
提问于 2018-06-22 10:19:45
回答 1查看 188关注 0票数 0

我想对发送给fish的所有命令进行预处理。我知道这可以通过fish_preexec来完成,因为它将文字命令作为参数进行传递。但是,我也希望在某些特定条件下完全阻止命令执行。我不想退出fish shell;我想让当前shell保持活动状态,只打印一条"command not executed"消息。

鱼支持这样的东西吗?

EN

回答 1

Stack Overflow用户

发布于 2018-06-22 21:22:05

这很棘手,但您可以通过将Enter键重新绑定到自定义函数来完成此操作,如下所示:

代码语言:javascript
复制
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

产生:

代码语言:javascript
复制
> ls
No
> whoami
david
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50979775

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档