pushd不会进入指定目录

时间:2017-03-07 07:48:04

标签: bash shell directory pushd

我正在尝试使用pushd

进入目录
 #!/bin/bash

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

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

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

我尝试了一些像mkdir这样的命令来查看它的创建位置。它是在我调用脚本的目录中创建的,而不是pushd中指定的目录。

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

提前致谢。

1 个答案:

答案 0 :(得分:2)

我猜我发现了错误:

pushd '~/MapTrial'

单引号(以及双引号)会阻止~的扩展。移动"蛇"出来它应该工作。 E.g:

pushd ~/'MapTrial'

pushd ~/MapTrial