【shell】通过EOF实现一个链接执行多条sql

这篇具有很好参考价值的文章主要介绍了【shell】通过EOF实现一个链接执行多条sql。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一. EOF简介

在shell脚本中,通常将EOF与 << 结合使用,表示后续的输入作为子命令或子Shell的输入,直到再遇到EOF为止,再返回到主Shell。EOF( 即 end of file )只是一个分界符。

EOF一般会配合cat能够多行文本输出,本文最后实现通过EOF执行多条sql。

 

二. 语法

command<<EOF
(内容)
EOF

# <<是输入重定向,将EOF中间的内容让command命令读取


还可以自定义,比如自定义:
command<<ABC        #开始
....
ABC              #结束

 

三. cat <<EOF 与 cat <<-EOF

两个都是获取stdin,并在EOF处结束stdin,输出stdout。

在我们使用cat <<EOF时,我们输入完成后,需要在一个新的一行输入EOF结束stdin的输入。
EOF必须顶行写,前面不能用制表符或者空格。

比如,下面的语句就不会出错:

cat <<EOF
Hello,world!
EOF

如果结束分界符EOF前有制表符(只是tab键),则EOF不会被当做结束分界符,只会继续被当做stdin来输入。

cat <<-EOF
Hello,world!
    EOF 

注意结尾的EOF前面必须是tab键,如果存在空格还是不会结束。

 

四. shell执行多条sql

#!/bin/sh
mysql_command="mysql -h ${hostname}  -u${username} -p${password}"  2>/dev/null
      ${mysql_command} <<-EOF
      use hivedb;
      alter table  TBLS  modify column TBL_NAME  varchar(1000) character set utf8;
      alter table COLUMNS_V2 modify column COMMENT varchar(256) character set utf8;
      alter table TABLE_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8;
      alter table PARTITION_PARAMS  modify column PARAM_VALUE varchar(4000) character set utf8;
      alter table PARTITION_KEYS  modify column PKEY_COMMENT varchar(4000) character set utf8;
      alter table  INDEX_PARAMS  modify column PARAM_VALUE  varchar(4000) character set utf8;
EOF

说明:

2>/dev/null:代表屏蔽所有错误
 
两个例子的作用都是将cat命令输出的追加到 test.sh
cat << EOF >> test.sh
cat > test.sh << EOF文章来源地址https://www.toymoban.com/news/detail-528478.html

到了这里,关于【shell】通过EOF实现一个链接执行多条sql的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 执行shell脚本报/bin/bash^M: bad interpreter错误的解决

    转载说明:如果您喜欢这篇文章并打算转载它,请私信作者取得授权。感谢您喜爱本文,请文明转载,谢谢。 问题描述: 在notepad++里面编辑修改了shell脚本,再上传到服务器执行,出现“-bash: ./test.sh: /bin/bash^M: bad interpreter: No such file or directory”的报错: 原因分析: 这个问题

    2024年02月02日
    浏览(60)
  • Python3,多种方法,同时执行多条SQL语句,并把查询结果分别写入不同Sheet页,妥妥的学到了。

    小屌丝 :鱼哥,我想请教一个问题。 小鱼 :国庆假期你经历了什么,让你变得如此的 “ 善良 ”? 小屌丝 :别这么说,我一直很善良,至少,很正直… 小鱼 :打住,直接点, 你有什么需要帮助的? 小屌丝 :我就是想把查询的结果也入到excel表中 小鱼 :然后呢? 小屌丝 :

    2024年02月08日
    浏览(54)
  • 【Python】 Windows上通过git bash执行python卡住的解决方法

    编辑 C:Program FilesGitetcprofile.daliases.sh ,将 python2.7 改成 python 编辑完成后,重启git bash, 输入python即可 https://blog.csdn.net/ofreelander/article/details/112058975

    2024年02月11日
    浏览(50)
  • springboot通过接口执行本地shell脚本

    首先创建springboot项目 shell脚本 这里是执行本地脚本 然后编写执行shell脚本的util类 最后开发接口调用此类 如何执行远程脚本 在这里我试用了三种方式,实现远程脚本的执行 但是使用ssh2时 会抛出上述的异常,大体的意思就是密钥交换算法不匹配,导致连接失败。 但是老版本

    2024年02月14日
    浏览(39)
  • 【源码分析】一个flink job的sql到底是如何执行的(一):flink sql底层是如何调用connector实现物理执行计划的

    我们以一条sql为例分析下flink sql与connector是如何配合执行的,本文我们先分析 sql-sqlnode-validate-operation:是如何找到对应的connector实例的 relnode-execGraph:是如何组装node为Graph,在哪找到connector实例的 之后的文章将会继续分析: translateToPlanInternal是如何串联connector其他方法的

    2024年01月16日
    浏览(46)
  • 自定义实现shell/bash

    exec/exit就像call/return一个C程序有很多函数组成。一个函数可以调用另外一个函数,同时传递给它一些参数。被调用的函数执行一定的操作,然后返回一个值。每个函数都有他的局部变量,不同的函数通过call/return系统进行通信。这种通过参数和返回值在拥有私有数据的函数间

    2024年04月28日
    浏览(25)
  • bash shell实现简易进度条

    # processbar current total processbar() {   local current=$1; local total=$2;   local maxlen=80; local barlen=66; local perclen=14;   local format=\\\"%-${barlen}s%$((maxlen-barlen))s\\\"   local perc=\\\"[$current/$total]\\\"   local progress=$((current*barlen/total))   local prog=$(for i in `seq 0 $progress`; do printf \\\'#\\\'; done)   printf \\\"rn$3rn$format\\\" $p

    2024年02月21日
    浏览(32)
  • MYSQL: sql中某一个字段内容为用逗号分割的字符串转换成多条数据(适用于部分树机构)

    1.创建表的示例 数据如下图: SELECT a.id,SUBSTRING_INDEX(SUBSTRING_INDEX(a.userName,‘,’,b.help_topic_id+1),‘,’,-1) as name from tbl_name a left join mysql.help_topic b on b.help_topic_id (LENGTH(a.userName)-LENGTH(REPLACE(a.userName,‘,’,‘’))+1) ORDER BY a.id; 本人需求为 图层树的父级节点都在 ancestors 字段中,需要获取

    2024年02月11日
    浏览(70)
  • 【Linux】编写一个 shell 脚本&执行

    在Linux中编写和执行脚本相对简单。下面是一个基本的步骤指南,帮助你创建一个简单的bash脚本并运行它: 1. 创建脚本文件 首先,你需要使用文本编辑器创建一个新的文件。这个文件通常会有 .sh 的扩展名,以表明它是一个shell脚本。例如,你可以创建一个名为 myscript.sh 的文

    2024年04月26日
    浏览(36)
  • 实现以管理员权限打开window终端cmd,并在终端里执行多条指令的功能

    本文实现以管理员权限打开window终端cmd,并在终端里执行多条指令的功能。 以挂载vhd虚拟盘、卸载vhd虚拟盘为例。 一、挂载vhd虚拟盘 C#工程 vhdAttach, 生成vhdAttach.exe,vhdAttach.exe的功能为:启动windows终端cmd.exe,读取attach-vhd.txt中的内容,并在终端里执行attach-vhd.txt中的多条指令

    2024年02月10日
    浏览(57)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包