Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to create a function in bashrc to accept arguments?

I would like to have an alias in my bashrc file to append the argument passed to it from terminal. For example:

$ lh300

calls:

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

However, if I type:

$ lh8080 or lh followed by any number:

$ lh#### 

I would like to call a function that appends the #### into an alias that will

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

How can I do this?

like image 534
CommonCents Avatar asked Mar 04 '13 16:03

CommonCents


2 Answers

You won't be able to use an alias, but you can create a function:

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

Then just call it like lh 3000.

like image 89
chrisaycock Avatar answered Oct 26 '22 10:10

chrisaycock


A questionable hack involving command_not_found_handle:

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

This requires bash 4 or later, I believe.

like image 39
chepner Avatar answered Oct 26 '22 09:10

chepner