我正在尝试使用pushd
#!/bin/bash
function cloneAll {
[ -d ~/mapTrials ] || mkdir ~/mapTrials
pushd '~/mapTrials/'
echo $(pwd)
popd
}
echo $(pwd)
为我提供了与我调用脚本相同的工作目录。
我在其他SO回答中读到pushd仅适用于子进程,我必须为它创建一个别名。我也做到了。
我尝试了一些像mkdir
这样的命令来查看它的创建位置。它是在我调用脚本的目录中创建的,而不是pushd
中指定的目录。
我如何让这个工作?如何进入shell脚本中的特定目录,然后在该目录中执行命令?
提前致谢。
答案 0 :(得分:2)
我猜我发现了错误:
pushd '~/MapTrial'
单引号(以及双引号)会阻止~
的扩展。移动"蛇"出来它应该工作。 E.g:
pushd ~/'MapTrial'
或
pushd ~/MapTrial