Bash - 从与脚本文件位于同一目录中的文件读取

Posted

技术标签:

【中文标题】Bash - 从与脚本文件位于同一目录中的文件读取【英文标题】:Bash - Read from file in the same directory as the script file 【发布时间】:2015-08-25 09:51:22 【问题描述】:

我无法上班的简单任务:

我有

checkCsv.sh

在我的用户文件夹中包含以下内容:

#!/bin/bash
DATEFILE="filedate.txt"
echo $DATEFILE
logDate="$(<$DATEFILE)"
echo $logDate

文件在同一个目录

文件日期.txt

问题是这个错误:checkCsv.sh: line 5: filedate.txt: No such file or directory

但文件存在!

编辑:我正在运行 GNU Bash 版本 4.3.30(1)


不胜感激

【问题讨论】:

有趣 - 它适用于我在 GNU bash 版本 4.3.11(1)-release 上(复制+粘贴并创建 filedate.txt)。你是什​​么版本 它也适用于我:GNU bash, version 4.2.25(1)-release (i686-pc-linux-gnu) 尝试在脚本中添加 echo $PWD 以查看它在哪里寻找文件,或者 ls $PWD $PWD 输出 /home/debianvm 插入 TARGET_DIR=$HOME; cd "$TARGET_DIR" 作为脚本的第一行。是的, cat "$DATEFILE" 会比 echo "$DATEFILE" 更有帮助:) 【参考方案1】:

请在脚本的第一行之后插入此代码:

TARGET_DIR=$HOME

# 如果 $HOME 不位于 $HOME,则将 $HOME 替换为 filedate.txt 的路径...

cd "$TARGET_DIR"

对于调试,恕我直言,cat "$DATEFILE" 将比 echo "$DATEFILE" 更有帮助

【讨论】:

以上是关于Bash - 从与脚本文件位于同一目录中的文件读取的主要内容,如果未能解决你的问题,请参考以下文章

如何可靠地打开与当前正在运行的脚本位于同一目录中的文件

如何使用 python 从位于同一目录中的多个 zip 文件夹中读取 csv 文件?

如何编写文本文件,然后在同一个 Bash 脚本中读取它?

一个bash脚本,用于使用bash脚本连接字符串并在同一文件中编辑一行

用于测试给定用户是不是可以读取目录和其中所有文件的 Bash 脚本?

读取bash脚本中的输入,该脚本是路径中带有空格的目录[重复]