歡迎您光臨本站 註冊首頁

Linux Shell 相關

←手機掃碼閱讀     火星人 @ 2014-03-26 , reply:0

這幾天由於工作需要經常和Linux shell腳本打交道,不過也是簡單的使用,沒有太深入地了解其中的道理,但是今天碰到了一個問題,沒有解決,到網上一搜果然有高手出招!我只能說互聯網真是個好東西!

這次遇到的問題是在shell腳本中編輯的cd命令與export命令並不能應用到當前的shell環境中,但後來經過查找發現個中的道理。 原來,Linux運行shell腳本程序的時候會在所處的進程(process)中分出一個子進程,也叫做fork, 那麼如果直接以' ./ '的方式運行腳本的後果就是只是在子進程中執行了腳本中的cd export命令,當該腳本執行完畢后,返回到父進程后以上的命令的結果都不會保存,因為子進程已經消亡。所以解決方法就是兩種:

1)使用source script_name來執行腳本,這樣會迫使腳本在當前的進程中執行,eg. 腳本名為 test.sh,執行方法為:source ./test.sh

2)使用 ". ./"的方式執行腳本,其中兩個dot之間是有一個空格,如1)中腳本,執行方法為:. ./test.sh

另外發現了一個牛人的文章,還是對shell 編程很有幫助,把連接貼在這裡以便查找:

http://bbs.chinaunix.net/viewthread.php?tid=218853&extra=&page=1 作者:網中人

[火星人 ] Linux Shell 相關已經有270次圍觀

http://coctec.com/docs/linux/show-post-187653.html