我想做的是将文件中的设置包含在我当前的交互式bash shell中,如下所示:
$。/path/to/some/dir/.settings
问题在于.settings脚本还需要使用“。”。运算符以包括其他文件,如下所示:
。 .extra_settings
如何在.settings文件中引用.extra_settings的相对路径?这两个文件始终存储在同一目录中,但是此目录的路径将有所不同,具体取决于这些文件的安装位置。
运算符(operator)始终知道/path/to/some/dir/,如上所示。 .settings文件如何知道其安装目录?我宁愿没有一个安装过程来记录已安装目录的名称。
最佳答案
我相信$(dirname "$BASH_SOURCE")
会做您想要的,只要您要采购的文件是而不是一个符号链接(symbolic link)。
如果您正在采购的文件可能是符号链接(symbolic link),则可以执行以下操作来获取真实目录:
PRG="$BASH_SOURCE"
progname=`basename "$BASH_SOURCE"`
while [ -h "$PRG" ] ; do
ls=`ls -ld "$PRG"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
PRG="$link"
else
PRG=`dirname "$PRG"`"/$link"
fi
done
dir=$(dirname "$PRG")
关于linux - 当bash脚本源自时,如何知道它的安装目录。运算符(operator)?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/421772/