Hallo
ich habe in meiner .bashrc eine kleine Funktion:
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:
kriege ich frech ein:
-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.
ich habe in meiner .bashrc eine kleine Funktion:
Code:
findinfile()
{
find -name .svn -prune -o -type f -exec grep "$1" {} \; -print
}
Übergebe ich aber einen String mit Leerzeichen darin, eingeklammert in Anführungszeichen, also etwa:
Code:
findinfile "Donau Dampf Schiff Fahrts Kapitaen"
Zitat:
-bash: [: Zu viele Argumente.
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