【问题标题】:Bash - Read from file in the same directory as the script fileBash - 从与脚本文件位于同一目录中的文件读取
【发布时间】: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" 更有帮助:)

标签: bash file cron


【解决方案1】:
  • 请在脚本的第一行之后插入此代码:

    TARGET_DIR=$HOME

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

    cd "$TARGET_DIR"

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-02-04
    • 2019-08-03
    • 1970-01-01
    • 2014-09-15
    • 2020-06-18
    • 2014-10-26
    • 2021-05-16
    • 1970-01-01
    相关资源
    最近更新 更多