[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: bash: alias mkcd='mkdir $1; cd $1' funktioniert nicht ;(



Moin...

On Wed, Oct 15, 2003 at 04:35:36PM +0200, Robert Michel wrote:
> ich versuche alias zu verstehen und zu verweden, jedoch habe ich ein Problem, 
> bei dem ich nicht weiter komme. A funktioniert, B funktioniert A;B jedoch 
> nicht:
> 
> A :)
> user@robins:~/script/$ alias test-mkdir = 'mkdir $1' 
> funktioniert:
> user@robins:~/script/$ test-mkdir test
> user@robins:~/script/$ ls
> test
> 
> B :)
> user@robins:~/script/$ alias test-cd = 'cd $1' 
> funktioniert auch:
> user@robins:~/script/$ test -cd test
> user@robins:~/script/test$
> 
> A;B :(
> An für sich sollte man beim alias Befehl auch zwei Befehle, per ";" getrennt 
> kombinieren können (Unterverzeichnis test wieder gelöscht)
> user@robins:~/script/$ alias mkcd='mkdir $1; cd $1'
> mkdir: zu wenige Argumente
> »mkdir --help« gibt weitere Informationen.
> bash: cd: test: No such file or directory
> 
> A2;B :)
> weder | noch & noch '' wollte mir irgendwie helfen, dagegen funktioniert es 
> auch dies:
> user@robins:~/script/$ alias mkcd='mkdir test; cd $1'
> user@robins:~/script/$ mkcd test
> user@robins:~/script//test$
> 
> Wie könnte ich doch mit "mkdir $1" ***und*** "cd $1" arbeiten?

Ich habe früher die tcsh benutzt und bin auch recht blauäugig an diese
Problematik gegangen. Die bash ist hier restriktiver/leistungsschwächer.
:) Sobald du etwas mit Argumenten machen willst, musst du eine Funktion
daraus machen. Ich habe mir z.B. eine ffgrep-Funktion gebaut, mit der
ich sehen kann, in welcher Datei mein Suchbegriff vorkommt (ja, ich
weiß, dass es auch fgrep gibt - den gab es damals noch nicht):

ffgrep() {
  find . -type f -exec grep -qi $1 {} \; -print
}

Dann kannst du auch locker Befehle kombinieren und mehrfach die
$1-Variablen benutzen.

 Christoph

-- 
~
~
".signature" [Modified] 3 lines --100%--                3,41         All



Reply to: