基本上我想在用户将以数字开头的字符串键入bash shell并返回时运行脚本。我不确定这是否可行。
答案 0 :(得分:0)
如果您的bash
版本至少为v4.0,则可以定义函数command_not_found_handle
。在bash放弃尝试查找命令之前,此函数将作为最后的手段调用。
函数的参数正是命令名及其参数(即$1
是命令)。
一个简单的例子:
command_not_found_handle () {
if [[ $1 = [0-9]* ]]; then
echo You typed the numeric command: "$1"
else
echo "$0: $1 not found"
return 127
fi
}
zsh
等效于command_not_found_handler
。我不知道最终 r 存在与否的哲学意义。
如果你不能处理命令,你应该确保退出函数返回码为127,因为当没有not_found句柄时,bash
和zsh
表示未发出命令的信号(r) )。