2013-03-04 5 views
8

Ich möchte einen Alias ​​in meiner Bashrc-Datei haben, um das Argument vom Terminal an ihn anzuhängen. Zum Beispiel:Wie erstellt man eine Funktion in bashrc, um Argumente zu akzeptieren?

$ lh300 

Anrufe:

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

Wenn ich jedoch ein:

$ lh8080 oder lh durch eine beliebige Anzahl gefolgt:

$ lh#### 

Ich möchte Rufen Sie eine Funktion auf, die #### an einen Alias ​​anfügt, der

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

Wie kann ich das tun?

Antwort

13

Sie verwenden können, um einen Alias ​​nicht, aber Sie können eine Funktion erstellen:

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

Dann ist es genau wie lh 3000 nennen.

2

Ein umstrittener Hack beteiligt command_not_found_handle:

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

Dies erfordert bash 4 oder später, glaube ich.