shell编程—— EOF 实现执行sql,输出结果

psql -h 172.18.65.200 dow_qa <<EOF
select count(*) from site_base.customer;
EOF

上述shell代码执行结果:

[gpadmin@yahoo200 test]$ ./shell.sh 172.18.65.200 dow_qa
 count
-------
  1472
(1 row)


在shell编程中,”EOF“通常与”<<“结合使用,“<<EOF“表示后续的输入作为子命令或子shell的输入,直到遇到”EOF“,再次返回到主调shell,可将其理解为分界符(delimiter)。既然是分界符,那么形式自然不是固定的,这里可以将”EOF“可以进行自定义,但是前后的”EOF“必须成对出现且不能和shell命令冲突。其使用形式如下:
交互式程序(命令)<<EOF
command1
command2...
EOF
       ”EOF“中间的内容将以标准输入的形式输入到”交互式程序“,当shell看到”<<“知道其后面输入的分界符,当shell再次看到分界符时,两个分界符中间的部分将作为标准输入。
       "EOF"一般常和cat命令连用。
注意,最后的”EOF“必须单独占一行。

下面以cat命令为例讲解”EOF“使用。一般有以下两种形式
1.cat<<EOF
2.cat<<EOF>filename或者cat<<EOF>>filename( cat<<EOF>filename或者cat<<EOF>>filename )
其实,第一种形式和第二种形式没有什么本质的区别,第一种形式将内容直接输出到标准输出(屏幕),而第二种形式将标准输出进行重定向,将本应输出到屏幕的内容重定向到文件而已。

例1:
#cat<<EOF
>12
>34D
>EOF
12
34D

例2:
#cat>>filename<<EOF
>DHA
>23
>EOF
#cat filename
DHA
23



  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Shell执行SQL语句可以通过以下步骤实现: 1. 在Shell脚本中使用mysql命令连接到数据库。 2. 编写SQL语句并将其存储在一个变量中。 3. 使用mysql命令执行SQL语句并将结果存储在一个变量中。 4. 处理结果并输出。 例如,以下是一个简单的Shell脚本,用于查询数据库中的数据: ``` #!/bin/bash # 连接到数据库 mysql -u username -p password -h hostname database_name << EOF # 编写SQL语句 SELECT * FROM table_name; EOF ``` 在上面的脚本中,我们使用了mysql命令连接到数据库,并使用EOF标记来指示Shell脚本中的SQL语句。我们可以在EOF标记之间编写任何SQL语句,然后使用mysql命令执行它们。 执行脚本后,我们将看到查询结果输出到终端。我们可以使用其他Shell命令来处理结果并进行其他操作。 ### 回答2: Shell执行SQL语句需要使用命令行工具,比如sqlite3、mysql、psql等。这些工具都支持在命令行中执行SQL语句。 首先,我们需要安装对应数据库的命令行工具。例如,如果使用sqlite数据库,可以通过以下命令进行安装: ```sh sudo apt-get install sqlite3 ``` 接着,我们可以通过以下命令进入sqlite3命令行: ```sh sqlite3 database.db ``` 其中,database.db是我们要操作的数据库名称。 在sqlite3命令行中,我们可以使用以下命令执行SQL语句: ```sql sqlite> SELECT * FROM table; ``` 其中,SELECT * FROM table表示执行查询语句,查询数据库中的table表格。 如果需要在Shell脚本中执行SQL语句,可以将SQL语句保存在一个文件中,然后通过命令行工具执行该文件。例如,以下示例可以用于执行包含SQL语句的文件: ```sh sqlite3 database.db < sql_file.sql ``` 其中,sql_file.sql是保存SQL语句的文件名。 总之,通过命令行工具执行SQL语句是Shell中操作数据库最常见的方式。我们只需根据需要选择相应的命令行工具,并按照上述方法执行SQL语句即可。 ### 回答3: Shell执行SQL语句是指在Shell命令行界面下,通过命令执行SQL语句,与数据库进行交互。这种方式通常被用来进行一些简单的数据库操作,比如查询数据、修改数据等。 在Linux或Unix系统中,可以使用命令行工具如mysql、psql等来执行SQL语句。这些工具通常是数据库管理系统自带的,或者可以从第三方软件源中下载安装。 在使用命令行工具执行SQL语句时,一般需要指定数据库名称、用户名和密码等连接参数。例如,在MySQL中,可以使用以下命令连接到数据库: ``` mysql -h localhost -u root -p mydatabase ``` 其中,“-h”指定数据库主机地址,“-u”指定用户名,“-p”指定密码,“mydatabase”是要连接的数据库名称。 连接成功后,可以执行SQL语句。例如,查询表中的所有记录可以使用如下命令: ``` select * from mytable; ``` 执行SQL语句后,会显示查询结果。如果需要将查询结果保存到文件中,可以使用输出重定向符“>”将结果重定向到指定文件中: ``` select * from mytable > result.txt; ``` 此外,在Shell脚本中也可以执行SQL语句,通过在脚本中调用命令行工具来实现。例如,在Bash脚本中执行MySQL语句可以使用以下方式: ``` #!/bin/bash result=$(mysql -u root -p -e "select count(*) from mytable" mydatabase) echo $result ``` 其中,“-e”选项表示执行SQL语句,“$()”可以将命令结果赋值给变量,“echo”命令可以输出结果。 总的来说,Shell执行SQL语句是一种简便快捷的数据库操作方式,可以满足一些简单的需求。但对于较为复杂的操作,还需要使用专业的数据库管理工具。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值