Wie kann ich Pfad-CD-Anteile an eine Shell-Funktion übergeben?

317
Stratboy

Ich versuche so etwas:

function projects(){ cd; cd Documents/projects/$1; } 

aber es geht nicht. Was ich möchte, ist, den Namen des Ordners zu übergeben, der zum Basispfad hinzugefügt werden soll (also etwa cd Documents / projects / myfolder). So zu tun funktioniert nicht:

projects myfolder 

Ich kann die richtige Syntax nicht herausfinden. Durchsucht das Web, aber es sollte richtig sein, aber es ist nicht so: PI kam von der clientseitigen Programmierung, daher verstehe ich die Shell-Logik nicht vollständig.

0
Wenn Sie sagen "es funktioniert nicht", was meinen Sie damit genau? Zeigt es eine Fehlermeldung? Geht es irgendwo anders? grawity vor 8 Jahren 0
So etwas wie "cd: string nicht in pwd" Stratboy vor 8 Jahren 0
Es sucht also den String in pwd, anstatt den Befehl hinzuzufügen Stratboy vor 8 Jahren 0

1 Antwort auf die Frage

0
Marcus Handley

Eine gute Idee wäre, die Echo-Funktion für Dokumente / Projekt zu verwenden und diese Variable dann zu verwenden. Fügen Sie sie zusammen und verwenden Sie die Funktion pipe (|), um sie an cd weiterzuleiten

Das macht keinen Sinn - `cd` akzeptiert den Pfad als Befehlszeilenargumente, _nicht_ als stdin, und Befehle in einer Pipeline können den 'main'-Shell-Prozess nicht beeinflussen. grawity vor 8 Jahren 0
ok grawity, danke. Hast du vielleicht Vorschläge? :) Stratboy vor 8 Jahren 0