pushd 不进入指定目录

pushd does not go into specified directory

我正在尝试使用 pushd

进入目录
 #!/bin/bash

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

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

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

我尝试执行一些命令,例如 mkdir 以查看将在何处创建它。它是在我调用脚本的目录中创建的,而不是在 pushd 中指定的目录中创建的。

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

提前致谢。

我想我发现了错误:

pushd '~/MapTrial'

单引号(以及双引号)阻止 ~ 的扩展。将 "snake" 移出,它应该可以工作。例如:

pushd ~/'MapTrial'

pushd ~/MapTrial