2015-02-23 69 views
0

警告!在這裏得到很基本的傢伙...創建一個shell腳本在OSX的bash中運行

我有一個相當複雜的shell腳本,我希望創建,但我有困難與最基本的命令,所以我正在努力去。

我想創建一個.sh文件,我可以簡單地使用BASH運行 - 如果我只將CD放在文件中並在BASH中運行,則什麼都不會發生,而從終端obv運行CD。讓我回家。

可能有人流下了這個,請...我運行OSX

感謝

+1

可能重複(http://stackoverflow.com/questions/3879431/how-to-run-cd-in-shell-script-and-stay-after-script-finish) – Mat 2015-02-23 15:32:55

+0

或http://stackoverflow.com/questions/255414/why-doesnt-cd-work-in -a-bash-shell-script?lq = 1 – Mat 2015-02-23 15:33:13

+1

你是什麼意思'沒有任何反應「?當你運行這個腳本時,一個子進程被分叉,文件被解析,子shell的cd被退出並返回一個值給調用shell。這是相當多的活動,我遺漏了很多細節! – 2015-02-23 15:35:06

回答

2

當你運行你生成一個新的子shell腳本,你cd作品,在一些光,然後你退出回到你的原始外殼和你目前的工作目錄 - 就像以爲cd從未發生過。如果您想要快捷方式cd請使用alias或函數。喜歡的東西:

go_dev() { 
    cd /my/long/path/to/dev/env/ 
} 

alias go_dev='cd /my/long/path/to/dev/env/' 
的[?如何在shell腳本運行 'CD',呆在那裏腳本完成後]