2019-05-30 15:34:08 4501瀏覽
在學習的時候,經(jīng)常要切換到固定的文件夾,于是寫了個shell腳本用cd命令切換卻發(fā)現(xiàn)目錄切換不了。本篇文章扣丁學堂Linux培訓小編給讀者們分享一下shell腳本中cd命令無效的解決方法,感興趣的小伙伴就隨小編來了解一下吧。
代碼如下:
#! /bin/bash # c.sh cd /mnt/hgfs/vmshare pwd
解釋:
執(zhí)行的時候是./c.sh來執(zhí)行的,這樣執(zhí)行的話終端會產(chǎn)生一個子shell(類似于C語言調(diào)用函數(shù)),子shell去執(zhí)行我的腳本,在子shell中已經(jīng)切換了目錄了,但是子shell一旦執(zhí)行完,馬上退出,子shell中的變量和操作全部都收回?;氐浇K端根本就看不到這個過程的變化。
驗證解釋:
#! /bin/bash # c.sh history cd /mnt/hgfs/vmshare sleep1 #延遲1s pwd
首先按照 ./c.sh執(zhí)行,這時候終端沒有切換目錄,history執(zhí)行的結(jié)果是空的,說明子shell里面沒有歷史命令(證明前面的解釋是正確的)。
解決方法:
source c.sh或者. ./c.sh,這時候就是直接在終端的shell執(zhí)行腳本了,沒有生成子shell,執(zhí)行的結(jié)果就是輸出歷史命令,并且切換了目錄。
注意上面. ./c.sh .和.中間有個空格!
最后想要了解更多關(guān)于Linux方面內(nèi)容的小伙伴,請關(guān)注扣丁學堂Linux培訓官網(wǎng)、微信等平臺,扣丁學堂IT職業(yè)在線學習教育平臺為您提供權(quán)威的Linux視頻,Linux培訓后的前景無限,行業(yè)薪資和未來的發(fā)展會越來越好的,扣丁學堂老師精心推出的Linux在線教程定能讓你快速掌握Linux從入門到精通開發(fā)實戰(zhàn)技能??鄱W堂Linux技術(shù)交流群:422345477。
【關(guān)注微信公眾號獲取更多學習資料】 【掃碼進入HTML5前端開發(fā)VIP免費公開課】
查看更多關(guān)于“Linux培訓資訊”的相關(guān)文章>>