【问题标题】:bash warning: delimited by end-of-file (wanted `EOL')bash 警告:由文件结尾分隔(需要“EOL”)
【发布时间】:2020-12-24 18:14:56
【问题描述】:

我有一个 bash 脚本,在文件末尾包含以下内容(仅后跟一个空行):

wget https://downloads.rclone.org/rclone-current-linux-amd64.zip -P /mnt/backend/
unzip /mnt/backend/rclone-current-linux-amd64.zip

cat >/mnt/backend/rclone.conf<<EOL
[remote]
type = s3
provider = AWS
env_auth = false
access_key_id = key
secret_access_key = key
region = us-west-2
storage_class = STANDARD
EOL

当我运行它时,我收到以下警告my_script.sh: line 40: warning: here-document at line 30 delimited by end-of-file (wanted `EOL')

为什么会这样,我显然有EOL,我尝试在它前面添加一个反引号或一个撇号,但也没有……我错过了什么?

【问题讨论】:

  • 我无法在bash 中重现此内容,它按预期工作。
  • 尝试运行 cat -vet my_script.sh 并查找不可打印的字符,例如 EOL^M
  • 嗯,奇怪...我看不到不可打印的字符
  • EOL后面有空格吗?
  • @thatotherguy 不,EOL 后没有空格

标签: linux bash shell


【解决方案1】:

从最简单的上下文开始

#!/bin/bash


cat >tst.conf<<EOL
HELLO CAT WORKS
EOL

并扩展脚本,逐行添加 ,它会告诉你原因在哪里:_)

【讨论】:

    猜你喜欢
    • 2012-09-12
    • 2018-05-09
    • 2013-08-08
    • 2019-08-13
    • 2015-01-27
    • 1970-01-01
    • 2015-04-13
    • 2016-04-04
    • 1970-01-01
    相关资源
    最近更新 更多