【发布时间】:2012-04-11 00:11:32
【问题描述】:
shell脚本的当前目录是什么?我从哪个当前目录调用它?还是脚本所在的这个目录?
【问题讨论】:
标签: linux directory sh working-directory
shell脚本的当前目录是什么?我从哪个当前目录调用它?还是脚本所在的这个目录?
【问题讨论】:
标签: linux directory sh working-directory
您可以通过在运行时检查pwd 的输出来自己执行此操作。
这将打印您当前所在的目录。不是脚本。
如果您的脚本不切换目录,它将打印您从中运行它的目录。
【讨论】:
shell 脚本的当前(初始)目录是您从中调用脚本的目录。
【讨论】:
如前所述,该位置将是调用脚本的位置。如果您希望脚本引用它的安装位置,这很简单。下面是一个 sn-p,它将打印 PWD 和安装目录:
#!/bin/bash
echo "Script executed from: ${PWD}"
BASEDIR=$(dirname $0)
echo "Script location: ${BASEDIR}"
欢迎你
【讨论】:
大多数答案都会为您提供当前路径并且是上下文相关的。要从任何目录运行脚本,请使用以下 sn-p。
DIR="$( cd "$( dirname "$0" )" && pwd )"
通过在子shell中切换目录,我们可以调用pwd并获得脚本的正确路径而不管上下文。
然后您可以将$DIR 用作"$DIR/path/to/file"
【讨论】:
....sh: fork: retry: Resource temporarily unavailable 该脚本由 OpenVPN 运行。 (在 nogroup 组和nobody 帐户下)
要打印当前的工作目录,即 pwd,只需键入如下命令:
echo "the PWD is : ${pwd}"
【讨论】: