在将数字输入bash shell时,有没有办法执行脚本?

时间:2015-03-30 19:56:53

标签: bash

基本上我想在用户将以数字开头的字符串键入bash shell并返回时运行脚本。我不确定这是否可行。

1 个答案:

答案 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句柄时,bashzsh表示未发出命令的信号(r) )。