shell EOF

shell EOF

Shell中通常将EOF与 << 结合使用,表示后续的输入作为子命令或子Shell的输入,直到遇到EOF为止,再返回到主调Shell。如下:

export NLS_LANG=‘SIMPLIFIED CHINESE_CHINA.ZHS16GBK‘
sqlplus $USERID @$OUT_FILE << EOF
exit
EOF

当把这段代码放在Shell中时,会在Shell脚本执行完毕后自动退出SQLPLUS的命令提示符状态。

<<EOF
(内容)
EOF

可以把EOF替换成其他东西
意思是把内容当作标准输入传给程序这里再简要回顾一下< <的用法。当s h e l l看到< <的时候,它就会知道下一个词是一个分界
符。在该分界符以后的内容都被当作输入,直到s h e l l又看到该分界符(位于单独的一行)。这个
分界符可以是你所定义的任何字符串。

方法1.需要,自动登录mysql(root:root,passwd:123456),查询test库,test1表里的user=aa的记录.

#!/bin/sh
mysql -uroot -p123456 <<EOF
use test;
select * from testaa while a=10000; ###1000 not usr single quote mark,because a is int 
                                                  # type,only char type need single quote mark.

exit
EOF
方法2:用expect脚本

3

1 #!/bin/bash
2 #batch_connect.sh
3
4 #cat /dev/null > batch_file
5 echo "use oss_platform;" > batch_file
6
7 URL_list=`cat url_for_db_final`
8 for URL in $URL_list
9 do
10 echo "update pornURL set count=count+1 where url=\"$URL\";" >> batch_file
11 echo "insert into pornURL (url,count) select \"$URL\",1 from dual where not exists (select * from pornURL where
url=\"$URL\");" >> batch_file
12
13 done
14 echo "exit" >> batch_file
15
16
17 cat /dev/null > url_for_db_final

18 mysql -h localhost -u ******* -p*************< batch_file | more
19
20
21 cat /dev/null > batch_file

时间: 2024-10-20 16:03:17

shell EOF的相关文章

shell EOF注意点

当sqlplus与shell交互的时候我们这么用 su - oracle -c "sqlplus / as sysdba<<EOF select * from gv($instance); exit; EOF" 这个程序看起来没什么问题,真正执行的时候会报错. 为什么? 因为这种方式,"内容"中的东西是被解析的 所以$instance没有值,这里就只能看到gv 这么写就没错了 su - oracle -c "sqlplus / as sysdb

about shell

摘抄 cat 等 cat主要有三大功能:1.一次显示整个文件.$ cat   filename2.从键盘创建一个文件.$ cat  >  filename只能创建新文件,不能编辑已有文件.3.将几个文件合并为一个文件.$cat   file1   file2  > file 示例 [email protected]:/var/www/test$ cat <<EOF >test.sh > #!/bin/bash > #your shell > EOF [ema

转:openTSDB 2.0 安装

OpenTSDB-2.0.0安装布署 2014-02-27 11:07:49|  分类: 大数据 |  标签:hadoop  |举报|字号 订阅 1.介绍OpenTSDB是一个架构在Hbase系统之上的实时监控信息收集和展示平台.它支持秒级数据采集所有metrics,支持永久存储,可以做容量规划,并很容易的接入到现有的报警系统里.OpenTSDB可以从大规模的集群(包括集群中的网络设备.操作系统.应用程序)中获取相应的metrics并进行存储.索引以及服务,从而使得这些数据更容易让人理解,如we

读书笔记-HBase in Action-第二部分Advanced concepts-(3)非Java客户端

HBase Shell HBase shell使用起来最方便,进入HBase shell控制台即可使用. $ $HBASE_HOME/bin/hbase shell 常见操作有create(创建表)/put(插入或更新数据)/get(根据rowkey查询)/scan(范围查询)/delete(删除列)/deleteAll(根据rowkey删除整行数据)/disable&drop(禁用表之后再删除). 基于数据库的项目,往往会在某个目录下存储专门的sql脚本,记录每次迭代数据库变更:同理,HBas

NoSQL 数据库概览及其与 SQL 语法的比较

NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用的难题. 本文对NoSQL数据库的定义.分类.特征.当前比较流行的NoSQL数据库系统等进行了简单的介绍,并对NoSQL和SQL语法进行了简单的比较,为大家对NoSQL数据库的学习提供了有益的参考. 一.NoSQL的出现 关系型数据库系统多年来在解决数据存储.服务和处理问题方面取得了巨大的成功.一些大型的公司使用关系型数据库建立了自己的系统,如联机事务处理系统和后端分析应用系统.联机事务处理(OLTP)系统用

读书笔记-HBase in Action-第二部分Advanced concepts-(3)非Javaclient

HBase Shell HBase shell使用起来最方便,进入HBase shell控制台就可以使用. $ $HBASE_HOME/bin/hbase shell 常见操作有create(创建表)/put(插入或更新数据)/get(依据rowkey查询)/scan(范围查询)/delete(删除列)/deleteAll(依据rowkey删除整行数据)/disable&drop(禁用表之后再删除). 基于数据库的项目,往往会在某个文件夹下存储专门的sql脚本,记录每次迭代数据库变更:同理,HB

大型企业服务器的自动化运维(转载)

企业主机服务器日常运维工作中,经常需要登录并以 root 方式执行系统操作,如果在主机数量少的情况下,手工方式登录并执行效率尚可,但如果主机数量庞大(如笔者运维的国外客户服务器数量达 2000+),依次对一台台服务器进行手工操作工作量巨大且出错概率与主机数量成线性增大. 本文分析了在大数量企业服务器情况下,利用 shell 管道,Java SSHD 开源包,Expect 脚本三种方式实现自动登录并执行系统运维操作,三种方式分别适用于不同的场景,可以满足绝大多数企业主机服务器自动化运维的工作内容,

hbase按照时间戳删除记录

1.按照时间戳范围查询记录 echo "scan 'event_log', { COLUMN => 'cf:sid', TIMERANGE => [1466265600272, 1471622400481]} " |  hbase shell > ./record.txt 其中这里的cf:sid和key一致, 时间戳范围需要按照时间自己转换: #current=`date "+%Y-%m-%d %H:%M:%S"`     #获取当前时间,例:20

NoSQL数据库概览及其与SQL语法的比较

[文章摘要] HBase是一个高可靠性.高性能.面向列.可伸缩的分布式存储系统,同时也是知名的NoSQL数据库之一.NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用的难题. 本文对NoSQL数据库的定义.分类.特征.当前比较流行的NoSQL数据库系统等进行了简单的介绍,并对NoSQL和SQL语法进行了简单的比较,为大家对NoSQL数据库的学习提供了有益的参考. 一.NoSQL的出现 关系型数据库系统多年来在解决数据存储.服务和处理问题方面取得了巨大的成功.