脚本可以更改脚本运行的bash的cwd吗?

时间:2012-10-23 09:58:36

标签: bash

这是一个场景,我打开一个终端,bash的{​​{1}}是`/ home / me',如下所示:

cwd

现在我在cwd中[/home/me $] ls a.sh 就像这样:

a.sh

我想要的是,我想通过运行[/home/me $] ./a.sh 更改bash的{​​{1}},这意味着在cwd完成后a.sh a.sh不会是bash

cwd

我能这样做吗?如果是,怎么样?

2 个答案:

答案 0 :(得分:1)

您可以使用在当前shell上下文中运行的source命令。因此,脚本中完成的所有更改都将在您的shell中显示。

例如:

如果a.sh的内容是:cd /usr/bin

然后执行以下操作将导致CWD

发生变化

$ source a.sh

答案 1 :(得分:1)

为此你需要运行a.sh而不需要这样的子shell:

. ./a.sh

这将确保在当前shell中运行您的脚本,并且脚本中的change dir命令将反映在当前shell中。