Wie erstelle ich einen Alias ​​mit einer darin enthaltenen Variablen?

Ich möchte einen Alias ​​für mein Terminal erstellen, um schnell in Dateien zu suchen.

In Ubuntu war es: alias gre="egrep -rnw ". Ich habe es so benutzt $ gre 'my search string'.

Jetzt möchte ich das für mein lokales MacBook-Terminal. Ich habe herausgefunden, dass ich grep nur so verwenden mussgrep -r 'search string' .

Wie kann ich einen Alias ​​wie den in Ubuntu hinzufügen?

Ich denke, es ist ungefähr so:alias gre="grep -r $theTerminalParameter ."

Wenn ich es im Terminal teste: alias test="grep -r $var ."und den "Inhalt" dieses Alias ​​mit überprüfe, alias testbekomme ich diese Informationen:

alias test='grep -r .'meine Variable erscheint also nicht im Alias.

Wie kann ich einen Alias ​​für diese Aufgabe verwenden?

alias gre='grep -r', und verwenden Sie es dann als gre patternoder gre $VAR:-)

Antworten (2)

Sie können keinen Alias ​​für willkürliche Ersetzungen verwenden. Sie können stattdessen eine Funktion verwenden.

function gre() {
  grep -r "$@" .
}
Danke, das funktioniert für mich ... andere benötigen möglicherweise die Information, wo diese Funktion gespeichert werden soll: ~/.bash_profileist der richtige Ort. Vergessen Sie nicht, einen neuen Tab zu öffnen, um die Änderungen zu verwenden, cmd-toder beenden Sie das Terminal und öffnen Sie es erneut.
@MonTea Sicher, aber wenn Sie mit dem Erstellen von Aliasen vertraut sind, wie dies die Prämisse der Frage ist, erfordern Funktionen keine zusätzlichen Kenntnisse. Eine Funktion kann wie ein Alias ​​weiterhin manuell in die Shell eingegeben werden, um nur in dieser Sitzung wirksam zu werden.
@MonTea es reicht eigentlich aus, .bash_profile zu beziehen

Sie können die Zeile hinzufügen~/.bash_profile

alias gre='grep -rwn'

und verwenden Sie es, indem Sie einfach einen Punkt nach der Suchzeichenfolge hinzufügen

gre 'search string' .

um Ihre aktuelle Sitzung zu aktualisieren, falls Sie die Registerkarte nicht schließen möchten

source ~/.bash_profile

was wiederum auch Ihr Alias ​​sein kann, wenn Sie von Zeit zu Zeit neue Aliase hinzufügen möchten. sbashZum Beispiel.