6

我正在尝试使用pushd

 #!/bin/bash

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

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

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

我试着做一些命令,比如mkdir看看它会在哪里创建。它是在我调用脚本的目录中创建的,而不是在pushd.

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

提前致谢。

4

1 回答 1

6

我想我发现了错误:

pushd '~/MapTrial'

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

pushd ~/'MapTrial'

或者

pushd ~/MapTrial
于 2017-03-07T08:51:57.363 回答