Nel caso in cui si esegue il guscio in modo interattivo e la directory di destinazione è statico, si può semplicemente mettere un alias nel vostro ~/.bashrc
del file:
alias cdfoo='cd theFooDir'
Quando si tratta di script di shell non interattiva, è possibile creare una protocollo tra lo script Bash parentale e lo script Bash figlio. Un metodo per implementare questo è lasciare che lo script figlio salvi il percorso in un file (come ~/.new-work-dir
). Al termine del processo figlio, il processo genitoriale dovrà leggere questo file (come cd `cat ~/.new-work-dir`
).
Se si prevede di utilizzare la regola citata nel paragrafo precedente molto spesso, suggerisco di scaricare il codice sorgente Bash e correggerlo in modo che cambi automaticamente la directory di lavoro al contenuto di dopo ogni esecuzione di un comando . Nella patch, potresti anche implementare un comando integrato Bash completamente nuovo che si adatta alle tue esigenze e implementa il protocollo che vuoi implementare (questo nuovo comando probabilmente non sarà accettato dai manutentori di Bash). Tuttavia, il patching funziona per uso personale e per l'uso in una comunità più piccola.
fonte
2011-10-12 12:36:49
Vedi anche http://stackoverflow.com/questions/255414/why-doesnt-cd-work-in-a-bash-shell-script – tripleee