doSmth
我有一个脚本/usr/bin
。是否可以获取并打印目录该脚本是从调用的?
所以如果我doSmth
从/home/me
输出中调用将是/home/me
.
答案1
当您在 shell 中调用命令时,新进程将继承父进程的工作目录。获取工作目录有两种方法:
echo "$PWD" # variable
pwd # builtin command
答案2
“调用它的目录”似乎是指它的工作目录。您可以使用例如,在脚本中更改此设置cd
,但在执行此操作之前,pwd
将其打印出来。它也可能在变量中$PWD
如果更改后需要初始工作目录,只需将其保存在脚本顶部(更改之前)
#!/bin/bash
initial_wd=`pwd`
# ... do a lot of stuff ...
# ⋮
cd "$initial_wd"
如果您使用它返回到您开始的目录,另请参阅pushd
和popd
。