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

2003-10-16 Diskussionsfäden Heiko Schlittermann
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 ;(

2003-10-15 Diskussionsfäden Robert Michel
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 ;(

2003-10-15 Diskussionsfäden Christoph Haas
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 ;(

2003-10-15 Diskussionsfäden Robert Michel
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 ;(

2003-10-15 Diskussionsfäden Robert Michel
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 ;(

2003-10-15 Diskussionsfäden Thomas Otto
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)