我有这个功能适用于同事,我也看到了它对其他人有用的地方。我试过了两个<< EOF和<
我已添加了该函数的简单用法以用于测试目的。
td_query() { bteq << EOF |grep '^>' |sed -e "s/^>//"
$(cat $HOME/.tdlogon)
DATABASE DBNAME;
.set width 1000;
.set titledashes off;
$1
.LOGOFF;
.QUIT;
.EXIT
EOF
}
td_query "select current_date;"
不幸的是,当我保存并尝试运行ksh文件时,我收到以下错误:
-ksh: .: syntax error: `<<' unmatched
有谁能告诉我是什么原因造成的?
答案 0 :(得分:0)
你应该避免<<EOF
和以EOF开头的行的空格。
EOF线也不应该有尾随空格
首先使用简单的脚本进行测试(在EOF之前没有任何想法!)。
td_query() {
wc <<EOF
$(cat $HOME/.tdlogon)
DATABASE DBNAME;
.set width 1000;
.set titledashes off;
$1
.LOGOFF;
.QUIT;
.EXIT
EOF
}
td_query "select current_date;"
检查bteq程序。他是从stdin读的吗? 当我更换&#34; wc&#34;通过&#34; echo&#34;在上面的脚本中,脚本停止工作!