So übergeben Sie Parameter in einem Linux-Befehl am Ende der Zeile

So übergeben Sie Parameter in einem Linux-Befehl am Ende der Zeile

Ich möchte am Ende der Zeile einen Parameter übergeben, während ich im Terminal einen Befehl eingebe.

Ich hätte also gerne so etwas wie das folgende Beispiel

find /path/to/directory -type f -exec grep -irl "SEARCH_PATTERN" {} \;

so etwas wie dieses Format:

find /path/to/directory -type f -exec grep -irl "$1" {} \; < "SEARCH_PATTERN"

und auf diese Weise muss ich nicht jedes Mal hingehen und den Befehl im -irl "SEARCH_PATTERN"Teil ändern. Stattdessen gebe ich ihn einfach einfacher am Ende der Zeile ein.

Dank im Voraus

Antwort1

Erstellen Sie eine Funktion:

mygrep() { find /path -type f -exec grep -irl "$1" {} +; }

mygrep waldo

Wozu brauchen Sie das eigentlich überhaupt find?

mygrep() { grep -irl "$1" /path; }

Antwort2

Das Einzige, was mir im Moment für diesen speziellen Fall einfällt, ist, eine Umgebungsvariable SEARCH_PATTERN zu erstellen und sie jedes Mal zu ändern, wenn Sie sie verwenden möchten.

Kurzes Beispiel;

$ SEARCH_PAT="abc"
$ find /path -type f -exec grep -irl "${SEARCH_PAT}" {} \;
$ SEARCH_PAT="xyz"
$ find /path -type f -exec grep -irl "${SEARCH_PAT}" {} \;

usw...

verwandte Informationen