[英]Executing Shell Script from current directory without '“./filename”
[英]Shell script current directory?
shell 脚本的当前目录是什么? 我从哪个当前目录调用它? 或者脚本所在的这个目录?
如前所述,该位置将是调用脚本的位置。 如果您希望脚本引用它的安装位置,这很简单。 下面是一个将打印 PWD 和安装目录的片段:
#!/bin/bash
echo "Script executed from: ${PWD}"
BASEDIR=$(dirname $0)
echo "Script location: ${BASEDIR}"
大多数答案为您提供当前路径并且是上下文相关的。 为了从任何目录运行您的脚本,请使用以下代码段。
DIR="$( cd "$( dirname "$0" )" && pwd )"
通过在子 shell 中切换目录,我们可以调用pwd
并获得脚本的正确路径,而不管上下文如何。
然后,您可以将$DIR
用作"$DIR/path/to/file"
shell 脚本的当前(初始)目录是您从中调用脚本的目录。
您可以通过在运行时检查pwd
的输出来自己执行此操作。 这将打印您当前所在的目录。 不是剧本。
如果您的脚本不切换目录,它将打印您从中运行它的目录。
要打印当前的工作目录,即 pwd,只需键入如下命令:
echo "the PWD is : ${pwd}"
你也可以完全使用 posix shell 脚本来完成它
#!/bin/sh
get_current_directory() {
current_file="${PWD}/${0}"
echo "${current_file%/*}"
}
CWD=$(get_current_directory)
echo "$CWD"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.