Re: bash: alias mkcd='mkdir $1; cd $1' funktioniert nicht ;(
Hallo, ich glaube, die anderen Antworten zu diesem Thema haben damit nichts zu tun (wir reden hier von aliasen und nicht von Scripten. In letzteren hat cd wirklich keinen Sinn.) [EMAIL PROTECTED]:~/script/$ alias test-mkdir = 'mkdir $1' funktioniert: [EMAIL PROTECTED]:~/script/$ test-mkdir test [EMAIL PROTECTED]:~/script/$ ls test Alias haben keine Paraemter. $1 ist also das, was aktuell in $1 steht, wahrscheinlich nichts. In Wirklichkeit rufst Du test-mkdir test -- mkdir $1 test auf, und da $1 leer ist, wird's ein 'mkdir test' [EMAIL PROTECTED]:~/script/$ alias test-cd = 'cd $1' Das selbe wie oben. [EMAIL PROTECTED]:~/script/$ alias mkcd='mkdir $1; cd $1' mkdir: zu wenige Argumente »mkdir --help« gibt weitere Informationen. bash: cd: test: No such file or directory mkcd test wird zu mkdir $1; cd $1 test ... und da $1 ja wieder leer ist, also zu mkdir ; cd test Alles klar? Shell-Funktionen wären hier besser, das hast Du sicher gesehen: function mkcd() { mkdir $1 cd $1; } Best regards from Dresden Viele Gruesse aus Dresden Heiko Schlittermann -- SCHLITTERMANN.de -- internet unix support - a href=http://debian.schlittermann.de/; Debian 3.x CD /a Heiko Schlittermann HS12-RIPE --- pgp: A1 7D F6 7B 69 73 48 35 E1 DE 21 A7 A8 9A 77 92 --- gpg: 3061 CFBF 2D88 F034 E8D2 7E92 EE4E AC98 48D0 359B - -- Haeufig gestellte Fragen und Antworten (FAQ): http://www.de.debian.org/debian-user-german-FAQ/ Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED] mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)
bash: alias mkcd='mkdir $1; cd $1' funktioniert nicht ;(
Salve, 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 :) [EMAIL PROTECTED]:~/script/$ alias test-mkdir = 'mkdir $1' funktioniert: [EMAIL PROTECTED]:~/script/$ test-mkdir test [EMAIL PROTECTED]:~/script/$ ls test B :) [EMAIL PROTECTED]:~/script/$ alias test-cd = 'cd $1' funktioniert auch: [EMAIL PROTECTED]:~/script/$ test -cd test [EMAIL PROTECTED]:~/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) [EMAIL PROTECTED]:~/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: [EMAIL PROTECTED]:~/script/$ alias mkcd='mkdir test; cd $1' [EMAIL PROTECTED]:~/script/$ mkcd test [EMAIL PROTECTED]:~/script//test$ Wie könnte ich doch mit mkdir $1 ***und*** cd $1 arbeiten? Danke für Tipps, Gruss rob -- Haeufig gestellte Fragen und Antworten (FAQ): http://www.de.debian.org/debian-user-german-FAQ/ Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED] mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)
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 :) [EMAIL PROTECTED]:~/script/$ alias test-mkdir = 'mkdir $1' funktioniert: [EMAIL PROTECTED]:~/script/$ test-mkdir test [EMAIL PROTECTED]:~/script/$ ls test B :) [EMAIL PROTECTED]:~/script/$ alias test-cd = 'cd $1' funktioniert auch: [EMAIL PROTECTED]:~/script/$ test -cd test [EMAIL PROTECTED]:~/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) [EMAIL PROTECTED]:~/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: [EMAIL PROTECTED]:~/script/$ alias mkcd='mkdir test; cd $1' [EMAIL PROTECTED]:~/script/$ mkcd test [EMAIL PROTECTED]:~/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 -- Haeufig gestellte Fragen und Antworten (FAQ): http://www.de.debian.org/debian-user-german-FAQ/ Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED] mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)
bash: alias mkcd='mkdir $1; cd $1' funktioniert nicht ;(
Salve, 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 :) [EMAIL PROTECTED]:~/script/$ alias test-mkdir = 'mkdir $1' funktioniert: [EMAIL PROTECTED]:~/script/$ test-mkdir test [EMAIL PROTECTED]:~/script/$ ls test B :) [EMAIL PROTECTED]:~/script/$ alias test-cd = 'cd $1' funktioniert auch: [EMAIL PROTECTED]:~/script/$ test -cd test [EMAIL PROTECTED]:~/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) [EMAIL PROTECTED]:~/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: [EMAIL PROTECTED]:~/script/$ alias mkcd='mkdir test; cd $1' [EMAIL PROTECTED]:~/script/$ mkcd test [EMAIL PROTECTED]:~/script//test$ Wie könnte ich doch mit mkdir $1 ***und*** cd $1 arbeiten? Danke für Tipps, Gruss rob -- Haeufig gestellte Fragen und Antworten (FAQ): http://www.de.debian.org/debian-user-german-FAQ/ Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED] mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)
Re: bash: alias mkcd='mkdir $1; cd $1' funktioniert nicht ;(
Salve, Problem gelöst: Es geht nicht mit alias und natürlich nicht mit bash skripten, weil diese ein Childprozess sind, welcher am Skriptende beendet wird, somit wäre ein Skript für ein cd Befehl, der nacher erhalten bleibt nicht nützlich - sondern mit fuction: Functions Aliases are fine for abbreviating frequently-used commands, but they soon reach their limits. Imagine you want to create a command that creates a new directory and immediately descends into it, ie executes mkdir and cd with the same argument. An alias can't do that since it can't duplicate its command line argument to use it for both mkdir and cd. The next more complex labour-saving feature of bash are functions. They are defined with the command function. It is followed by the name of the function with two parentheses () and the definition of the function. This consists of a sequence of commands enclosed in braces. For instance, our create-and-descend-into-directory function could be defined in the following way: function mkcd() { mkdir $1 cd $1; } http://www.volkerschatz.com/unix/bash.html Und was muss man auf dieser Seite lesen: If you need information beyond that (and beyond what is on this page), only bash's man page can help you. The best way to read it is the following: Type man bash It really is worth it - all 5087 lines of it :)! Ich hoffe nicht, das dieses Problem alle 14 Tage auf dieser Liste gepostet wird und ehrlich, ich habe heute 30 minuten mit diesem Problem beschäftigt, bevor ich hier gepostet hatte - echt gemein, wie sich alias verhält ;) man alias Kein Manual-Eintrag für alias vorhanden Und stattdessen 5087 Zeilen man bash - Wie war das mit teile und herrsche? function man-alias() { man bash|grep -B2 -A10 alias ;} man-alias Tzztzz, an wen muss man sich wenden um einen Textvorschlag für man alias einzureichen? Ein siehe man bash würde schon helfen. Gruss rob -- Haeufig gestellte Fragen und Antworten (FAQ): http://www.de.debian.org/debian-user-german-FAQ/ Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED] mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)
Re: bash: alias mkcd='mkdir $1; cd $1' funktioniert nicht ;(
man alias Kein Manual-Eintrag für alias vorhanden Und stattdessen 5087 Zeilen man bash - Wie war das mit teile und herrsche? function man-alias() { man bash|grep -B2 -A10 alias ;} man-alias Wenn du dich in der bash selber befindest kannst du einfach die eingebaute Hilfe benutzen: $ help alias Dass du in manpages via /begriffenter suchen kannst ist dir hoffentlich bekannt :). Die einzig längere Manpage scheint die des gccs zu sein - 7488 Zeilen. Tzztzz, an wen muss man sich wenden um einen Textvorschlag für man alias einzureichen? Ein siehe man bash würde schon helfen. Selbermachen ;-): man() { a() { echo Siehe 'man bash'; }; case $1 in alias) a; ;; cd) a; ;; type) a; ;; function) a; ;; *) /usr/bin/man $@; esac; } -Thomas -- Haeufig gestellte Fragen und Antworten (FAQ): http://www.de.debian.org/debian-user-german-FAQ/ Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED] mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)