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

news/2025/2/12 21:55:26/

文章目录

  • 一. EOF简介
  • 二. 语法
  • 三. cat <<EOF 与 cat <<-EOF
  • 四. shell执行多条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} <<-EOFuse 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


http://www.ppmy.cn/news/744325.html

相关文章

Unity ILRuntime热更新(二)

一、启动ILRuntime并加载程序集 public class Lesson02 : MonoBehaviour {private AppDomain _domain;private MemoryStream _dllStream;private MemoryStream _pdbStream;IEnumerator Start(

linux系统编程(全)

linux系统编程 一、文件编程 1、文件的打开及创建 1.1open函数头文件 #include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>1.2open函数原型 int open(const char *pathname, int flags); int open(const char *pathname, int flags, mode_t …

细说IPSec 密钥交换,(数字证书认证、PSK、数字信封)

前文介绍IPSec和IKE已经很清晰了&#xff0c;可以查看一张图认识IPSec&#xff0c;区分IKE SA&#xff08;ISAKMP SA&#xff09;和IPSec SA。 本文主要介绍在IKE动态协商方式建立IPSec隧道时的基本工作原理。 一、IKE动态协商综述 手工方式建立SA存在配置复杂、不支持发起…

5.3 IPSec之三----密钥管理

1、密钥管理--IKE 因特网密钥交换协议IKE是一个安全协商SA的协议 功能 协商安全关联 进行双向实体认证 用安全的方法建立密钥 管理安全关联 IKE是一种混合型协议&#xff0c;包括 2、密钥管理--ISAKMP 提供密钥管理架构 定义SA的建立、协商、修改、删除规程和分组格式 …

使用Aircrack-ng工具破解WEP、WPA/WPA2加密的无线网络

特别声明&#xff1a;本文是参照“9.2 使用Aircrack-ng工具破解无线网络”进行实验的。链接为&#xff1a;https://wizardforcel.gitbooks.io/daxueba-kali-linux-tutorial/content/52.html 因为这个链接我经常打不开&#xff0c;所以特地实验并记录一遍以方便以后查阅。 Air…

cdlinux教程wpa2无线网络密码破解

wpa2无线网络密码破解&#xff1a;对于多数电脑爱好者朋友来说破解基本无法成功&#xff0c;下面我们分享下一黑客破解无线网络实例&#xff0c;供学习参考。下面是宜春门户站小编针对wpa2无线网络密码破解而整理的文章。很详细哦&#xff0c;赶快点下面的百度分享按钮把知识分…

网安笔记04 公钥密码体制

公钥密码体制 公钥密码体制的基本概念 保密性&#xff1a;确保信息只被授权的人访问 认证&#xff1a;确认某实体/数据源的真实性 保密性需要考虑到 不可否认性数据完整性 保密系统要考虑 达到实际上不可破 接获密文、某些明文密文对&#xff0c;决定密钥或者明文是不可…

【转】完全教程 Aircrack-ng破解WEP、WPA-PSK加密利器

原文地址:http://netsecurity.51cto.com/art/201105/264844_1.htm 其实关于无线基础知识的内容还是挺多的,但是由于本书侧重于BT4自身工具使用的讲解,若是再仔细讲述这些外围的知识,这就好比讲述DNS工具时还要把DNS服务器的类型、工作原理及配置讲述一遍一样,哈哈,估计整…