嘗試在帶有 cd 的 wsl 中使用 bash 腳本,但它沒有執行任何操作

嘗試在帶有 cd 的 wsl 中使用 bash 腳本,但它沒有執行任何操作

我創建了以下腳本只是為了學習 wsl 中的 bash 腳本,另存為 nano 中的 Desktop.sh

#!/bin/bash 
cd /mnt/c/Users/myusername/Onedrive/Desktop

當我在 shell 中輸入 bash Desktop.sh 時

什麼都沒發生

任何建議都會有幫助

答案1

您使用該命令調用的腳本bash Desktop.sh運行良好,但您沒有看到任何效果。

為什麼?

因為腳本是在子shell 中執行的。

執行腳本bash Desktop.sh將啟動一個子 shell,並執行子 shell 中的任何命令。因此,目前目錄在子 shell 中更改,並且僅在子 shell 中更改。當腳本停止時,您將返回 shell,其中沒有任何變更。如果您使腳本可執行,也會發生同樣的情況,他們透過輸入其路徑名稱來運行它。在這種情況下,將讀取 shebang ( #!/bin/bash) 來決定要載入哪個 shell。

效果,您需要執行cd命令目前的殼。你可以這樣做採購劇本:

source Desktop.sh

或使用快捷符號:

. Desktop.sh

現在,效果就好像您自己在提示符號下鍵入腳本中的命令一樣。

相關內容