Skip to main content
 首页 » 编程设计

bash中警告 : here-document in bash

2025年04月02日72mate10pro

执行以下代码时

list="$(Result "$VARDB" "$VAR2" - <<-EOT 
SELECT d.day || '@' || t.mo  
FROM    daa a,dab b; 
EOT)" 

我收到以下错误:

warning: here-document at line 5 delimited by end-of-file (wanted `EOT') 

该代码在 bash 版本 3.2.25 下运行良好,但在版本 4.1.2 下触发错误

请您参考如下方法:

试试这个:

list="$(Result "$VARDB" "$VAR2" - <<EOT 
SELECT d.day || '@' || t.mo  
FROM    daa a,dab b; 
EOT 
)" 

这是因为here-doc实际上以任何字符串开头。因此,开头是 EOT,找到文件结尾而不是 EOT
shell 只看到 EOT) 而不是 EOT