<<来自不同用户的无法匹配的错误

时间:2015-01-05 22:09:54

标签: unix ksh

我有一个运行良好的ksh函数:

td_query () { bteq << EOF |grep '^>' |sed -e "s/^>//" 
user/pass
    DATABASE db;
    $1
.LOGOFF;
.QUIT;
.EXIT
EOF
}

但是当复制到另一个目录并在另一个用户下运行时,我收到此错误:

-ksh: .: syntax error: `<<' unmatched

为什么它会在一个用户而不是另一个用户下工作?

我还能弄清楚的是,如果我以其工作的用户身份登录,那么转到我刚刚复制的其他目录并尝试从那里运行它,它不起作用要么...

1 个答案:

答案 0 :(得分:1)

你的heredoc重定向中有一个迷路空间:

bteq << -EOF
       ^^

应该是

bteq <<- EOF
       ^^

连字符属于重定向运算符。请参阅the ksh93 man page(或ksh88