zsh能否读取保留的终端关键字?

zsh能否读取保留的终端关键字?,zsh,Zsh,通常,如果我在shell(zsh)中键入“clear”,则显示的内容将被清除 这就是我想做的 如果我输入'clear',shell将被清除,并记录一些我打算发出的消息 所以我修正了.zshrc如下所示 clear() { read REPLY if[[[ $REPLY =~ "clear"]] then echo "some message" fi } 因此,我希望如果我键入“clear”,shell上的内容将被清除,并且还会提示“someme

通常,如果我在shell(zsh)中键入“clear”,则显示的内容将被清除

这就是我想做的

如果我输入'clear',shell将被清除,并记录一些我打算发出的消息

所以我修正了
.zshrc
如下所示

clear()
{
    read REPLY

    if[[[ $REPLY =~ "clear"]]
    then
        echo "some message"
    fi
}
因此,我希望如果我键入“clear”,shell上的内容将被清除,并且还会提示“somemessage”

但只有“一些信息”才出来


如何读取保留的“清除”命令,而不是字符串本身?

您的函数无法清除屏幕。为此,必须发出
clear
命令。但由于您的函数也被称为
clear
,只需在函数中键入
clear
,就会导致无限递归。作为解决方案,使用

command clear

相反。前缀
command
绕过函数定义。

请修复发布中的语法错误(即
if
语句)。谢谢,你的意思是clear(){read REPLY if[[$REPLY=~command clear]]然后回显“some message”fi}如果我使用command clear而不是clear(){},实际清除不会发生,而不是
clear(){}
。这毫无意义!在
回显
之前执行
命令清除