shell脚本的当前目录是什么?我这个目前的目录,我打电话给它?或者脚本所在的这个目录?
答案 0 :(得分:88)
如前所述,该位置将是调用脚本的位置。如果您希望脚本引用它的安装位置,那很简单。下面是一个片段,它将打印PWD和已安装的目录
#!/bin/bash
echo "Script executed from: ${PWD}"
BASEDIR=$(dirname $0)
echo "Script location: ${BASEDIR}"
答案 1 :(得分:23)
大多数答案会为您提供当前路径并且对上下文敏感。要从任何目录运行脚本,请使用以下代码段。
DIR="$( cd "$( dirname "$0" )" && pwd )"
通过在子shell中切换目录,我们可以调用pwd
并获取脚本的正确路径,而不管上下文。
然后,您可以将$DIR
用作"$DIR/path/to/file"
答案 2 :(得分:15)
shell脚本的当前(初始)目录是您调用脚本的目录。
答案 3 :(得分:7)
您可以通过在运行时检查pwd
的输出来自行完成此操作。
这将打印您当前所在的目录。不是剧本。
如果您的脚本没有切换目录,它会打印从运行它的目录。
答案 4 :(得分:0)
要打印当前工作目录,即pwd,只需键入以下命令:
echo "the PWD is : ${pwd}"