基於shell指令碼中cd命令無效的解決方法

2021-08-21 12:32:58 字數 728 閱讀 6832

在學習的時候,經常要切換到固定的資料夾,於是寫了個shell指令碼用cd命令切換卻發現目錄切換不了。

**如下:

#! /bin/bash

# c.sh

cd /mnt/hgfs/vmshare

pwd

解釋:執行的時候是./c.sh來執行的,這樣執行的話終端會產生乙個子shell(類似於c語言呼叫函式),子shell去執行我的指令碼,在子shell中已經切換了目錄了,但是子shell一旦執行完,馬上退出,子shell中的變數和操作全部都收回。回到終端根本就看不到這個過程的變化。

驗證解釋:

#! /bin/bash

# c.sh

history

cd /mnt/hgfs/vmshare

sleep1 #延遲1s

pwd

解決方法:source c.sh或者. ./c.sh,這時候就是直接在終端的shell執行指令碼了,沒有生成子shell,執行的結果就是輸出歷史命令,並且切換了目錄。

注意上面. ./c.sh.和.中間有個空格!

Shell指令碼中cd命令使用

在寫shell指令碼的時候發現cd切換目錄的時候無法切換,是下面的。bin bash changedir.sh cd home firefox pwd 我仔細一想,我執行的時候是 changedir.s h來執行的,這樣執行的話終端會產生乙個 子shell 子shell去執行我的指令碼,在子shel...

Shell指令碼中cd命令使用

在寫shell指令碼的時候發現cd切換目錄的時候無法切換,是下面的。1 bin bash 2 changedir.sh 3history 4 cd home firefox 5 sleep 1 6 pwd 我仔細一想,我執行的時候是.changedir.sh來執行的,這樣執行的話終端會產生乙個子sh...

Python指令碼中執行shell命令

system 其中最後乙個0是這個命令的返回值,為0表示命令執行成功。使用system無法將執行的結果儲存起來。這裡寫描述popen 獲取命令執行的結果,但是沒有命令的執行狀態,這樣可以將獲取的結果儲存起來放到list中。commands 可以很方便的取得命令的輸出 包括標準和錯誤輸出 和執行狀態位...