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脚本连接字符串并在同一文件中编辑一行