【问题标题】:Delimiter Warning in shell Script with psql使用 psql 的 shell 脚本中的分隔符警告
【发布时间】:2014-09-24 08:09:24
【问题描述】:

我在 Shell 脚本中遇到分隔符错误:

#!/bin/sh

result=`psql -d databasename -t -A <<EOF
SELECT COUNT(*) FROM schema.table
WHERE "column_name_x" = 'specific_value_x'
AND "column_name_y" = 'specific_value_y'
AND ("column_name_z" LIKE 'specific_z%' OR "column_name_za" LIKE 'specific_za%')
;`
EOF

echo $result
#EOF

脚本的结果很好。但我收到两个警告:

./filename.sh: line 13: warning: here-document at line 8 delimited by end-of-file (wanted `EOF')
./filename.sh: line 9: EOF: command not found

这里有什么问题?谢谢!

【问题讨论】:

  • 你缩进EOF了吗?它必须从第 0 列开始。
  • @cdarke 感谢您的快速响应!但是不,在 EOF 之前或之后没有空格或类似的想法。

标签: shell sh eof psql delimited


【解决方案1】:

您的 here-doc 的开头在您的命令中,但 EOF 在您的命令之外。

result=`psql -d databasename -t -A <<EOF
SELECT COUNT(*) FROM schema.table
WHERE "column_name_x" = 'specific_value_x'
AND "column_name_y" = 'specific_value_y'
AND ("column_name_z" LIKE 'specific_z%' OR "column_name_za" LIKE 'specific_za%')
EOF
`

; 在这里似乎也错了(至少它给我带来了错误)。

【讨论】:

  • 谢谢!这就是问题所在:)。你为我节省了几个小时;)。祝你有美好的一天!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-01-08
  • 2014-04-23
  • 1970-01-01
  • 2021-12-22
  • 1970-01-01
  • 1970-01-01
  • 2017-06-28
相关资源
最近更新 更多