我有这段代码来检查一个文件是否存在于目录中,但是它退出时说这个文件不存在-
# in another file in the same directory
SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
source "${SCRIPT_DIR}/common.sh" # calling the code below
BACKUP_VARS_FILE=${BACKUP_VARS_FILE:-"${SCRIPT_DIR}"/bitbucket.diy-backup.vars.sh}
if [ -f "${BACKUP_VARS_FILE}" ]; then
source "${BACKUP_VARS_FILE}"
echo "Using vars file: '${BACKUP_VARS_FILE}'"
else
error "'${BACKUP_VARS_FILE}' not found"
bail "You should create it using '${SCRIPT_DIR}/bitbucket.diy-backup.vars.sh.example' as a template"
fi
但该文件确实存在于与common.sh
相同的文件夹中,其中代码为.
输出-它甚至不进入if/else块
[![在此输入图像说明][2]][2]
有没有人帮忙?
编辑-变量输出,读取文件(较少)工作-[![在此处输入图像描述][3]][3]
1条答案
按热度按时间wixjitnu1#
由于输出是“/bitbucket...",斜杠前面没有任何内容,我认为您的
${SCRIPT_DIR}
是空的,这使得它查找位于根目录/
下的文件。您的当前目录是
/home/ubuntu/backup
,可以在其中找到bitbucket.diy-backup.vars.sh
,但您的脚本可能查找/bitbucket.diy-backup.vars.sh
,而不是/home/ubuntu/backup/bitbucket.diy-backup.vars.sh
。请先检查${SCRIPT_DIR}
变量。