AIX上运行KSH脚本时的Here Documents相关的低级错误

今天编写一个AIX上的KSH脚本,功能是定期收集VMSTAT信息并且放入ORACLE数据库,以供查询分析,脚本如下:

  #!/usr/bin/ksh

export ORACLE_HOME=/home/oracle/database
  export PATH=$ORACLE_HOME/bin:$PATH
  SERVER_NAME=`uname -a|awk '{print $2}'
  typeset -u SERVER_NAME
  export SERVER_NAME

SAMPLE_TIME=300

while true
  do
       vmstat ${SAMPLE_TIME} 2 > /tmp/msg$$
       cat /tmp/msg$$|sed 1,3d| awk '{ printf("%s %s %s %s %s %s %s\n", $1, $6, $7, $14 ,$15, $16, $17) }' 
       while read RUNQUE PAGE_IN PAGE_OUT USER_CPU SYSTEM_CPU IDLE_CPU WAIT_CPU
       do
             $ORACLE_HOME/bin/sqlplus -s test/test@sid<<EOF
               insert into test.test$vmstat values (
                       sysdate,
                       $SAMPLE_TIME,
                       '$SERVER_NAME',
                       $RUNQUE,
                       $PAGE_IN,
                       $PAGE_OUT,
                       $USER_CPU,
                       $SYSTEM_CPU,
                       $IDLE_CPU,
                       0
                       );
               EXIT
               EOF
       done
done
rm /tmp/msg$$

结果悲剧就发生在上面最后一个“EOF”上,为了代码格式,我把EOF前面也加了TAB,但是这却是EOF所不允许的,出现了如下错误:

./get_vmstat.sh[13]: 0403-057 Syntax error at line 20 : `<' is not matched

EOF是代表Here Documents的结束。注意此处不能像写C程序一样,为了美观而把EOF向右缩进,因为SHELL规定EOF必须是该行唯一出现的内容,连空格都不能有。因此,这个EOF就暂时突出在这一行了。(通过将输入操作符改为“<<-”可以解决这个问题,但是这里也无伤大雅)。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索脚本
, path
, export
, ksh
, server_name
, while
, 低级错误
Bin
aix ksh not found、aix出现好多ksh进程、aix ksh、here documents、documents,以便于您获取更多的相关知识。

时间: 2024-08-31 15:41:46

AIX上运行KSH脚本时的Here Documents相关的低级错误的相关文章

如果我想在vs2010上运行mpi程序时控制用多少个进程运行,应该怎么做?

问题描述 如果我想在vs2010上运行mpi程序时控制用多少个进程运行,应该怎么做? 是在vs2010上直接控制,不是在mpich2上通过wmpiexe.exe程序控制,十分感谢!......... 解决方案 用多个进程运行的关键是进程间的数据交换和同步,这方面你可以用管道或者RPC来实现.

wcf-WCF 身份验证问题,当服务器 上运行客户端程序时 会出现验证失败的结果

问题描述 WCF 身份验证问题,当服务器 上运行客户端程序时 会出现验证失败的结果 服务器端 身份验证设置的是 只启用Windows身份验证,设置好登录名,密码,域等信息, 现在一段测试程序连接WCF地址,访问密码.用户名.域都配置正确,配置文件设置验证如下: 在本机上运行,一切正常,能够访问数据库等等一切操作,但是如果将程序放到服务器上(这个服务器就是搭建WCF 的服务器),运行就会爆验证不通过的错,报错如下:System.ServiceModel.Security.MessageSecuri

我在Mesos上运行Docker容器的经验

本文讲的是我在Mesos上运行Docker容器的经验,[编者的话]下面的这篇博客出自John Omernik之手,他是Big Data Analytics的Data Enthusiast和VP,还是Zions Bank的Fraud Center of Excellence的经理,Zions Bank是家顶级的金融服务公司.在这篇博客中,作者分享了他是怎么利用新技术如Mesos和Docker来使用MapR文件系统的,并编写了一个可以简化流程的脚本. 我的技术栈 正如在此博客中我所写到的,我想和你分

【翻译】在没有安装ASP.NET MVC3的服务器上运行ASP.NET MVC3的程序-scottgu

原文地址: http://weblogs.asp.net/scottgu/archive/2011/01/18/running-an-asp-net-mvc-3-app-on-a-web-server-that-doesn-t-have-asp-net-mvc-3-installed.aspx 为了更符合中文阅读习惯,我对原文做了小幅度修改   最近我们发布了一些新的Web产品 - 包括ASP.NET MVC 3.至今为止,我们已经获得了大量的反馈. 有几个朋友在问我一个问题:"我的网站托管服务

使用 ARChon 运行时环境在 Ubuntu 上运行 Android 应用

在此之前,我们尝试过在多款安卓应用模拟器工具上运行安卓应用,比如Genymotion.VirtualBox和Android SDK等.但是,有了这套全新的Chrome安卓运行环境,就可以在Chrome浏览器中运行安卓应用了.所以,下面是一些步骤来指导你如何使用ARChon运行时环境在Ubuntu上安装安卓应用. 谷歌已经公布了首批支持原生运行在Chrome OS的安卓应用,而这个全新的"安卓运行时环境"扩展程序使其成为可能.如今,一位名为Vlad Filippov的开发者已经找到了一种

视频-android项目在4.4上运行正常,在5.0以上运行时出现问题

问题描述 android项目在4.4上运行正常,在5.0以上运行时出现问题 我项目在4.4上运行正常,但在5.0项目上运行时,有个视频界面放置一段时间不对其做任何操作,这个界面会出现黑屏的状况. 解决方案 把编译时出现的警告完善.确保Java每一步都实现 解决方案二: 你提供的信息太少,可以尝试在黑屏左右的时间抓下log,看log里有什么打印,然后工程用android21的sdk,确保没有过时的接口调用

test studio-Test Studio运行脚本时怎么选择浏览器为谷歌?

问题描述 Test Studio运行脚本时怎么选择浏览器为谷歌? 用Test Studio录制脚本后运行脚本时怎么选择或设置浏览器为谷歌? 电脑默认浏览器已设为为谷歌,并且在Test Studio中Settings中设置浏览器Calibrate Browsers时,除Internet Explorer可以Calibrate外,其他浏览器都不行.谷歌中的扩展权限也都已打开.并且也另外重装过谷歌浏览器和Test Studio,先装的谷歌浏览器,再装的Test Studio. 请问还有什么地方是没有设

远程桌面-键鼠脚本在云服务器上运行的问题

问题描述 键鼠脚本在云服务器上运行的问题 我用的阿里云.服务器上跑着一个和键鼠脚本自动运行有关的程序.比如:有人有请求时候,我服务器程序会自动命令服务器的鼠标点击某个区域,从而来进行特殊处理. 目前问题是这样,我用远程桌面登陆阿里云服务器,在远程桌面连接的情况下,服务器处理正常.但是我把远程桌面关闭后,服务器的键鼠脚本就不运行了(因为关闭了远程桌面,目前不明确是不是真的不运行了还是鼠标点击位置出现了问题),其他处理正常. 有没有哪位亲遇到这类问题,真心求帮助,如何解决这个问题. 目前还没有办法抛

android 4 2 2-android应用程序在4.2.2的手机上运行程序时出现问题

问题描述 android应用程序在4.2.2的手机上运行程序时出现问题 程序在4.0和4.1的手机上都能正常运行 但是在三星s4 上4.2.2的手机上跑就会出现 IT unchain all for threadid=21 threadid=2:stuck on threadid=19,giving up Fatal signal 16(SIGSTKFLT) at 0x000057bc(code=-6),thread 22639 Fatal spin-on-suspend,dumping thr