pushd 没有进入指定目录

leo*_*ion 6 directory bash shell pushd

我正在尝试使用 pushd

 #!/bin/bash

 function cloneAll {
   [ -d ~/mapTrials ] || mkdir ~/mapTrials
   pushd '~/mapTrials/'
   echo $(pwd)
   popd
}
Run Code Online (Sandbox Code Playgroud)

echo $(pwd)为我提供了与我从中调用脚本相同的工作目录。

我在其他 SO 答案中读到 pushd 仅适用于子进程,我必须为其创建别名。我也这样做了。

我尝试执行一些命令,例如mkdir查看它的创建位置。它是在我调用脚本的目录中创建的,而不是在pushd.

我如何让这个工作?如何进入 shell 脚本中的特定目录,然后在该目录中执行命令?

提前致谢。

Sch*_*eff 6

我想我发现了错误:

pushd '~/MapTrial'
Run Code Online (Sandbox Code Playgroud)

单引号(以及双引号)防止~. 将“蛇”移出,它应该可以工作。例如:

pushd ~/'MapTrial'
Run Code Online (Sandbox Code Playgroud)

或者

pushd ~/MapTrial
Run Code Online (Sandbox Code Playgroud)