打开本地文件时需要什么预防措施?

时间:2016-09-14 11:29:13

标签: linux bash

我在其中一个脚本中找到了以下内容:

SCRIPT_LOCATION=$(pwd)
SCRIPT_DIRECTORY="$(dirname ${SCRIPT_LOCATION})"
CONFIG_FILE="${SCRIPT_DIRECTORY}/.saved-settings"

这个想法基本上是:然后脚本检查该文件是否存在;并加载保存的设置。

似乎运行pwd和dirname ......并没有添加任何值。上面的

更好
CONFIG_FILE="./.saved-settings"

如果是这样 - 以哪种方式?

1 个答案:

答案 0 :(得分:2)

之间的一个语义差异
SCRIPT_LOCATION="$(pwd)"
SCRIPT_DIRECTORY="$(dirname ${SCRIPT_LOCATION})"
CONFIG_FILE="${SCRIPT_DIRECTORY}/.saved-settings"

CONFIG_FILE="../.saved-settings"

(注意两个点)是当前目录是符号链接的情况。在这种情况下,dirname会将路径视为字符串并删除其中的最后一个组件(例如/foo/bar/baz将变为/foo/bar),但..运算符将占用您到符号链接目标的父目录。因此,如果当前目录为/foo/bar/baz,这是/aaa/bbb/ccc的符号链接,则第一个代码段将返回/foo/bar,而第二个代码段将返回/aaa/bbb