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 脚本中的特定目录,然后在该目录中执行命令?
提前致谢。
我想我发现了错误:
pushd '~/MapTrial'
Run Code Online (Sandbox Code Playgroud)
单引号(以及双引号)防止~
. 将“蛇”移出,它应该可以工作。例如:
pushd ~/'MapTrial'
Run Code Online (Sandbox Code Playgroud)
或者
pushd ~/MapTrial
Run Code Online (Sandbox Code Playgroud)