前几天整理shell,将一个sqlplus语句移到了函数里,在AIX上,k-shell

如下:

 

function a
{
 sqlplus usr/pwd@sid <<!
 exit
 !
}

然后好好的语句就开始报错:

test.sh: 0403-057 Syntax error at line 3 : `<‘ is not matched.

我开始以为是换行符的问题,或者是我手误在哪里输进去了个什么标点

结果查看了许久,都找不到什么错误的地方.

干脆写最基本的语句开始测试.

最终终于找到了让人哭笑不得的原因:

在shell里用<<进入别的程序,结束标志不能缩进…

恍然大悟,我做的唯一改动就是把脚本整体右缩进了一个制表符呀.

以前还没留意过这个问题,我干脆写shell的函数不缩进了…