阻止fish命令通过fish_preexec执行

时间:2018-06-22 02:19:45

标签: shell command fish

我想预处理所有发送给fish的命令。我知道这可以通过fish_preexec来完成,因为它会将文字命令作为参数传递。但是,在某些条件下,我也想完全阻止执行该命令。我不想放弃鱼壳;我想保留当前的shell,只打印一条"command not executed"消息。

鱼支持这样的事情吗?

1 个答案:

答案 0 :(得分:4)

这很棘手,但是您可以通过将Enter键重新绑定到自定义函数来实现,例如:

SIGCHLD

产生:

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