尝试在 wsl 中使用 cd 的 bash 脚本,但它没有执行任何操作

尝试在 wsl 中使用 cd 的 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,其中没有任何变化。如果您使脚本可执行,然后通过键入其路径名来运行它,也会发生同样的情况。在这种情况下,#!/bin/bash将读取 shebang ( ) 以确定要加载哪个 shell。

效果,你需要cd当前的您可以通过以下方式执行此操作:采购剧本:

source Desktop.sh

或者使用快捷方式:

. Desktop.sh

现在,效果就像您自己在提示符下输入脚本中的命令一样。

相关内容