18

我想在我的 bashrc 文件中有一个别名,以附加从终端传递给它的参数。例如:

$ lh300

调用:

alias lh3000='open http://localhost:3000'

但是,如果我输入:

$ lh8080 或 lh 后跟任意数字:

$ lh#### 

我想调用一个将#### 附加到别名中的函数,该别名将

'open http://localhost:####'

我怎样才能做到这一点?

4

2 回答 2

25

您将无法使用别名,但您可以创建一个函数:

lh() { open http://localhost:$1; }

然后就这样称呼它lh 3000

于 2013-03-04T17:01:48.153 回答
3

一个可疑的黑客攻击涉及command_not_found_handle

command_not_found_handle () {
    if [[ $1 =~ lh([[:digit:]]+) ]]; then
        open "http://localhost:$BASH_REMATCH[1]"
    fi
}

我相信这需要bash4 或更高版本。

于 2013-03-04T18:45:56.560 回答