Linux 我怎样才能替换;bash:$COMMAND:COMMAND未找到;消息
任何帮助都将不胜感激 基本上,我想替换:Linux 我怎样才能替换;bash:$COMMAND:COMMAND未找到;消息,linux,bash,stdout,stderr,Linux,Bash,Stdout,Stderr,任何帮助都将不胜感激 基本上,我想替换: ~]$ obvfake bash: obvfake: command not found 与: 谢谢 您可以将其写入您的.bashrc: function error_handler { if [ $? -eq 127 ]; then echo "[*] command not found" fi } trap 'error_handler' ERR 这仍然会显示未找到的bash:obvfake:command。您可以通过
~]$ obvfake
bash: obvfake: command not found
与:
谢谢 您可以将其写入您的
.bashrc
:
function error_handler {
if [ $? -eq 127 ]; then
echo "[*] command not found"
fi
}
trap 'error_handler' ERR
这仍然会显示未找到的bash:obvfake:command
。您可以通过执行以下操作来抑制此操作:
obvfake 2> /dev/null
我只需将错误重定向到
/dev/null
。如果obvfake
返回的退出代码大于0,则它将回显您的自定义错误消息
obvfake 2>/dev/null || echo "[*] command not found"
这可能有点过于笼统,因为它无法区分错误代码。所以我们可以检查一个特定的出口代码
obvfake 2>/dev/null || {
if (( $? == 127 )); then
echo "[*] command not found"
fi
}
如果我想检查大量错误代码,我会用case
语句替换If
表达式。
为了便于使用,您可以将该功能集成到脚本中,并可能将其包装成一个函数,以便在出现各种故障时重用它
您非常想在bash
:)中了解更多信息
编辑:我想我误解了原来的问题。我认为,
obvfake
是一个自定义脚本,它抱怨调用了命令,但在系统上找不到 bash
Version4引入了一个钩子来处理丢失的命令;将以下内容添加到.bashrc
文件中
command_not_found_handle () {
printf "[*] command not found\n"
return 127
}
正如切普纳所建议的。。。您可以通过将bash函数(handles Signal 127或command not found函数)替换为您设计的函数并将该函数包含在.bashrc脚本中来自定义默认消息
# function that handles command-not-found message.
command_not_found_handle() {
echo -e "My Friend, '$1' is a typo. Please correct it and re-enter the command."
return 127
}
您也可以在以下位置查看:不确定我在哪里失败,或者预期结果是否不是我所期望的,但我已经尝试过了。它只打印这两种格式。>obvfake>bash:obvfake:未找到命令>[*]未找到命令found@CarlosSanchez,为这种行为添加了一些解释。你为什么要问?你为什么在乎?是你有改进它的自由。所以,获取它的源代码,研究它,改进它。。。。但是你确定它值得你花时间吗?但是你的例子没有产生OP所要求的输出。如果是这样的话,它将是由@chepner@Peter嗯,我想在chepner的帖子上加上我的评论。。但由于一些限制,我无法发表评论,因此我发表了一篇新的帖子。我尝试了一下,结果在我的网站上发表了与这篇文章相同的文章。这不对吗?“这不对吗?”——在我看来,是的。Stack Overflow不是为您的网站做广告的合适地方,据我所知,您的答案所增加的唯一贡献/附加值就是为您的网站做广告。完全脱离主题,在这里没有用处。(这与你是否可以发表评论无关,但在这个问题上,仅仅因为SO不允许你发表评论,这并不是你发表评论的理由,就像它是一个答案一样)。谢谢你让我知道。我会处理的。我想知道有没有办法处理这个错误,打印我们的自定义消息,然后让系统打印默认消息?有一个:
command\u not\u found\u handle(){fortune侮辱;return 127}
,当然,如果您有相关的fortune文件(来自perl\u fortune
)。有点像sudo用错误的密码侮辱你
# function that handles command-not-found message.
command_not_found_handle() {
echo -e "My Friend, '$1' is a typo. Please correct it and re-enter the command."
return 127
}