Jeremy Rutens Idee, einen Symlink zu verwenden, löste einen Gedanken aus, der mir bei keiner anderen Antwort gekommen ist. Verwenden:
CDPATH=:$HOME/projects
Der führende Doppelpunkt ist wichtig; er bedeutet, dass, wenn es ein Verzeichnis 'dir' im aktuellen Verzeichnis gibt, dann ' cd dir
' dazu übergehen wird, anstatt irgendwo anders hin zu springen. Wenn der Wert wie gezeigt eingestellt ist, können Sie das tun:
cd java
und wenn es im aktuellen Verzeichnis kein Unterverzeichnis namens java gibt, führt es Sie direkt zu $HOME/projects/java - keine Aliase, keine Skripte, keine dubiosen execs oder dot-Befehle.
Mein $HOME ist /Users/jleffler; mein $CDPATH ist:
:/Users/jleffler:/Users/jleffler/mail:/Users/jleffler/src:/Users/jleffler/src/perl:/Users/jleffler/src/sqltools:/Users/jleffler/lib:/Users/jleffler/doc:/Users/jleffler/work
14 Stimmen
Seitenübergreifende Duplikate: superuser.com/questions/176783/
3 Stimmen
In Zukunft können Sie immer versuchen, es mit
pwd
in der letzten Zeile. Bevor das Skript beendet wird, können Sie also überprüfen, ob es funktioniert oder nicht.6 Stimmen
@lesmana Wie kann das ein Duplikat sein?
1 Stimmen
@aland Weil OP das tut no das Skript tatsächlich ausführen, deshalb ändert sich das Arbeitsverzeichnis für ihn nicht.
cd
Befehl funktioniert gut innerhalb von Skripten, probieren Sie es selbst aus.0 Stimmen
Warum ist cd kein Programm? , wo ist
cd
befindet?0 Stimmen
xdotool type --clearmodifiers 'cd ~/projects/java' && xdotool key KP_Enter
0 Stimmen
Im Grunde ist dies ein Duplikat von stackoverflow.com/questions/1464253/
0 Stimmen
Seitenübergreifende Duplikate: warum die cd-Funktion im Skript nicht funktioniert , Warum kann ich cd nicht in einem Bash-Skript verwenden? , Warum funktioniert "cd" nicht in einem Shell-Skript?