溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

無法在shell腳本中使用cd命令如何解決

發(fā)布時間:2021-05-17 15:30:32 來源:億速云 閱讀:395 作者:Leah 欄目:開發(fā)技術

這篇文章將為大家詳細講解有關無法在shell腳本中使用cd命令如何解決,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

代碼如下:

#! /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 .和.中間有個空格!

關于無法在shell腳本中使用cd命令如何解決就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI