Parameter mit Leerzeichen in einer .bashrc Funktion

mardi 1 septembre 2015

Hallo

ich habe in meiner .bashrc eine kleine Funktion:

Code:

findinfile()
{
  find -name .svn -prune -o -type f -exec grep "$1" {} \; -print
}

Damit kann ich schnell nach Text in allen Dateien suchen, ohne das alles immer eingeben zu müssen, ich übergebe einfach einen Suchbegriff (ohne Anführungszeichen).
Übergebe ich aber einen String mit Leerzeichen darin, eingeklammert in Anführungszeichen, also etwa:

Code:

findinfile "Donau Dampf Schiff Fahrts Kapitaen"
kriege ich frech ein:

Zitat:

-bash: [: Zu viele Argumente.
Das selbe Problem hatte wohl auch einer auf stackoverflow, aber die Lösungen dort helfen nicht.
Was mach ich falsch?
Wie sage ich dem Kommandozeileninterpretor, also wohl bash 4.3.11(1), dass er die Anführungszeichen nicht ignorieren darf?

Danke

franc

EDIT: habe schon verschiedenes probiert, z.B. mit doppelten (doppelten Anführungszeichen) oder Escapezeichen (Backslash), mit echo in der Funktion und mit $@ statt $1 und einfachen Anführungszeichen und so Sachen.
Bin jetzt erschöpft vom probieren.


0 commentaires:

Enregistrer un commentaire

 

Lorem

Ipsum

Dolor