Bash Script warning - HERE document delimited by end of file
本问题已经有最佳答案,请猛点这里访问。
我有一个如下的sql文件
1 2 3 4 5 | #!/usr/bin/env bash cat <<'VERBATIM_SQL' INSERT INTO t_random VALUES (generate_series(1,9999999999), md5(random()::text)); VERBATIM_SQL |
像下面这样从外壳程序脚本调用该sql文件
1 2 3 4 5 | #!/usr/bin/env bash ./insert.sql | psql -U postgres -p 5432 -h localhost -d vnera ./insert.sql | psql -U postgres -p 5432 -h localhost -d vnera ./insert.sql | psql -U postgres -p 5432 -h localhost -d vnera |
执行时,我收到如下警告
1 | Loop 1./insert.sql: line 5: warning: here-document at line 3 delimited by end-of-file (wanted `VERBATIM_SQL') |
有人可以让我知道为什么会发出警告吗?
编辑
我做了其中一项评论中所建议的
1 2 | support@vrni-platform:~/postgres_junk$ dos2unix insert.sql dos2unix: converting file insert.sql to Unix format ... |
但是仍然收到同样的警告
1 | ./insert.sql: line 5: warning: here-document at line 3 delimited by end-of-file (wanted `VERBATIM_SQL') |
Shell对于它们将接受此处文档终止非常挑剔。 它必须与提供的令牌完全匹配。 特别是,您应检查以下内容:
-
终端行没有Windows行尾
-
终端线上没有尾随空格。 (也不能缩进。)