【发布时间】:2013-04-08 14:11:00
【问题描述】:
我的目标:当我输入一些不是有效的 Unix 命令时,它会被提供给一个特殊的函数,而不是显示“找不到命令”消息。
我找到了this post,这让我走到了一半。
trap 'if ! type -t $BASH_COMMAND >/dev/null; then special_function $BASH_COMMAND; fi' DEBUG
这允许我运行我的特殊功能。但是之后仍然出现“找不到命令”错误。
有什么方法可以告诉 Bash 禁止显示该消息?无论是在这个命令中,还是在特殊函数中,都可以。谢谢!
【问题讨论】:
-
"type -t" 带有任何参数,即使使用 Bash 3.0 也不会产生任何错误。你确定你使用的是 bash 吗?或者也许 special_function 是没有找到的那个?
-
感谢您的回复。肯定有特殊功能(我在我的一个演示中使用了 echo :),是的,我使用的是 Bash,但也许错误是因为我在 Mac 上?
-
不知道是不是 Mac 的问题。顺便说一句,我得到的“找不到命令”消息是一个小案例:“bash:fdasfa:找不到命令”,而不是“找不到命令”。你真的应该确保你正在运行 bash。尝试在脚本运行时部分的某处插入 echo "$BASH_VERSION" >~/bash_version.txt。然后在您能够运行它后检查发送到该文件的输出。
标签: bash unix command-line stdout