shell脚本返回执行结果(怎么在shell脚本里面获得sqlplus执行的结果)

:暂无数据 2026-05-10 12:20:03 0
本文旨在解决您关于shell脚本返回执行结果的两大困惑:一是理清基本概念,二是深入解析怎么在shell脚本里面获得sqlplus执行的结果。内容干练,直奔主题。

本文目录

怎么在shell脚本里面获得sqlplus执行的结果

请参考下面这个方法:

备注:getDbUserByTableName $TableName是获取表在哪个数据库的。你可以直接把$DbUSER换成tns串或者别名即可。

#sqlplus连接数据库的方法
#需要传入两个参数,第一个是表名,一个是需要执行的sql语句,一条语句作为一行
sqlBossDb(){
TableName=$1
SqlStr=$2
getDbUserByTableName $TableName
DbUSER=`cat *****`
Note_Log "$DbUSER连接数据库,执行语句$SqlStr"
eval echo \${$DbUSER} 》***** #查询出来是*****中DBUSERNAME项,需要换成DBUSERSTR项
DbUSER=`cat *****`
#Note_Log "开始 $DbUSER"
sqlplus  $DbUSER 《《!
set linesize 1000
$SqlStr
commit;
quit
!
e

Linux Shell 怎样获得命令的执行结果

1、CAT命令在用户主目录下创建一名为f1的文本文件,内容:Linux is useful for us ***** can never imagine how great it is。

2、向文件f1增加以下内容:Why not have a try?。

3、输入命令“wc   《f1》  countf1”,屏幕上不显示任何信息。

4、输入命令“cat  countf1”,查看countf1文件的内容,其内容是f1文件的行数,和单词数及字符数信息。

5、即f1文件共有3行,19个单词和87的字符。

如何在shell脚本中,判断一个基本命令执行是否成功

符号显示上一条命令的返回值,如果为0则代表执行成功,其他表示失败。
用特殊变量:$?判断前一个命令的执行是否成功(或者说是返回码)执行成功变量的值是0,不是零表示没有执行成功例如:注意:一定要在命令执行后立即判断,否则后面的代**冲掉$?变量的值。
shell脚本中判断上一个命令是否执行成功shell中使用符号“$?”来显示上一条命令执行的返回值,如果为0则代表执行成功,其他表示失败。结合if-else语句实现判断上一个命令是否执行成功。
第一步,将编写的bat批处理文件拖到cmd命令窗口中,以定期清除旧数据,见下图,转到下面的步骤。
、可以通过ps命令获取所有的进程,然后通过awk命令提取进程名,再用grep提取相应的进程名即可。

达梦数据库shell脚本怎么获取查询语句结果集

方式一
当然是windows电脑安装达梦管理工具,直接把脚本贴进去执行,但避免不了出现误操作
在这里插入图片描述
方式二
使用shell脚本执行sql
1. 先找到达梦数据库安装位置吧
# ss -nlp |grep 5236
tcp LISTEN 0 128 :* users:(("dmserver",pid=103380,fd=4))
# ps -ef|grep dmserver
root 85093 66993 0 17:56 pts/6 00:00:00 grep --color=auto dmserver
dmdba 103380 1 8 13:36 ? 00:23:18 /home/dmdba/dmdbms/bin/dmserver /home/dmdba/dmdbms/data/DAMENG_JW/***** -noc***ole
1
2
3
4
5
1
2
3
4
5
2. 直接在linux上执行shell命令执行sql脚本
*** # disql username/password:port
使用这个命令可以进入sql控制台
# /home/dmdba/dmdbms/bin/disql cpuser/cpuser123:5236
服务器:处于普通打开状态
登录使用时间 : *****(ms)
disql V8
**L》
进入**L》后:
直接输入sql语句,使用英文分号结尾,回车执行。
使用“`sql文件路径”,可以执行sql脚本文件,注意前面有一个小撇(esc和tab中间的键)
使用“start sql文件路径”,可以执行sql脚本文件。
*** # disql username/password:port `sql文件位置
使用这个命令可以执行sql脚本
# /home/dmdba/dmdbms/bin/disql cpuser/cpuser123:5236 \`sql/*****
#
1
2
1
2
但需注意
这个脚本执行完sql会停留在sql执行行,如需执行完返回到shell命令行,则需要在sql文件结尾添加:exit; 。
这个shell语句不能用start执行sql文件,只能使用“`”,并且前面需要添加转义字符“\”。
*** 达梦sql脚本注意事项
目前发现-创建schema语句以及执行过程结尾,都需要添加“/”结束
例如执行以下语句,回车执行,一直在输出数字,直到输入“/”,再回车执行,才执行成功。
# /home/dmdba/dmdbms/bin/disql cpuser/cpuser123:5236
服务器:处于普通打开状态
登录使用时间 : *****(ms)
disql V8
**L》 create schema test;
2
3 /
操作已执行
已用时间: *****(毫秒). 执行号:700604.
**L》
sql脚本示例:
-- 创建schema
CREATE SCHEMA DB_ZFBA_MOBILE;
/
-- 执行过程
begin
if exists(select 1 from DBA_TAB_COLUMNS where OWNER=’DB_ZFBA_MOBILE’ AND TABLE_NAME=’T_ZJTQD’) then
EXECUTE immediate ’drop table DB_ZFBA_*****_ZJTQD’;
end if;
end;
/
create table DB_ZFBA_*****_ZJTQD
(
"C_BH" char(32) NOT NULL, -- 主键
"C_BH_AJ" varchar2(32) NULL, -- 案件编号
……
"DT_ZHXGSJ" datetime NULL, -- 最后修改时间
c***traint PK_T_ZJTQD primary key( C_BH )
);
sql文件结尾添加exit;,保证多个sql文件执行不会中断
3. 编写shell脚本
注意:shell脚本一定在linux中编写,windows编写的有些语句执行不成功(目前原因未知)
例如: a=a b=b c=$a$b echo $c 在windows下编写,linux中执行完会输出b
#!/bin/bash
# 请先配置数据库连接信息,再执行此脚本
DM_PATH=/home/dmdba/dmdbms #达梦数据库的安装位置
USERNAME=cpuser #达梦数据库连接用户名
PASSWORD=cpuser123 #达梦数据库连接密码
PORT=5236 #达梦数据库连接端口号
# 下面的信息请不要随意修改
CONNECT_INFO=$USERNAME/$PASSWORD:$PORT
echo "连接信息:"$CONNECT_INFO
# STEP 1
echo "【开始执行】---- sql/02_创建数据库对象/*****_*****"
$DM_PATH/bin/disql $CONNECT_INFO \`sql/02_创建数据库对象/*****_***** 》》 DB_*****
echo "【执行完成】---- sql/02_创建数据库对象/*****_*****"
# STEP 2
echo "【开始执行】---- sql/02_创建数据库对象/*****_*****"
$DM_PATH/bin/disql $CONNECT_INFO \`sql/02_创建数据库对象/*****_***** 》》 DB_*****
echo "【执行完成】---- sql/02_创建数据库对象/*****_*****"
# STEP 3
echo "【开始执行】---- sql/02_创建数据库对象/*****_*****"
$DM_PATH/bin/disql $CONNECT_INFO \`sql/02_创建数据库对象/*****_***** 》》 DB_*****
echo "【执行完成】---- sql/02_创建数据库对象/*****_*****"
# STEP 4
echo "【开始执行】---- sql/02_创建数据库对象/*****_*****"
$DM_PATH/bin/disql $CONNECT_INFO \`sql/02_创建数据库对象/*****_***** 》》 DB_*****
echo "【执行完成】---- sql/02_创建数据库对象/*****_*****"
# STEP 5
echo "【开始执行】---- sql/03_初始化数据/****_T_Aty_CodeType_*****"
$DM_PATH/bin/disql $CONNECT_INFO \`sql/03_初始化数据/****_T_Aty_CodeType_***** 》》 DB_*****
echo "【执行完成】---- sql/03_初始化数据/****_T_Aty_CodeType_*****"
# STEP 6
echo "【开始执行】---- sql/03_初始化数据/****_T_Aty_Code_*****"
$DM_PATH/bin/disql $CONNECT_INFO \`sql/03_初始化数据/****_T_Aty_Code_***** 》》 DB_*****
echo "【执行完成】---- sql/03_初始化数据/****_T_Aty_Code_*****"
# Complete
echo "【**L全部执行完成】---- 日志请查看DB_*****"
执行完成后,通过shell控制台和DB_*****日志可以分析sql脚本是否执行成功。

shell脚本执行sql传出结果

shell脚本执行sql需要输出结果,可以在shell脚本中写入语句,执行完成sql语句后,结果定向输入到一个txt文本文件中,再把txt文本文件存放在固定的文件夹中即可。

shell 脚本能不能有返回值,

return是退出某个函数,exit是退出整个脚本,这两个都可以返回某个数值,但不能是字符串。

shell脚本的一个返回值问题

返回值$?即Exit Status
结果不为0,则回传真值(0),
算式结果为0,则回传假值 1,
$? exit值 跟 c 语言类似,用来输出一个编码,
一般输出 0 表示执行成功,
1-125 的值表示表示错误码,意味着脚本执行出了问题。
在Bash中,当错误发生在致命信号时,bash会返回128+signal number做为返回值。如果找不到命令,将会返回127。如果命令找到了,但该命令是不可执行的,将返回 126。除此以外,Bash本身会返回最后一个指令的返回值。若是执行中发生错误,将会返回一个非零的值。

Shell命令的退出状态及错误检查

Shell中执行的每个命令都会通过退出状态码(exit status)来返回命令的执行结果,它是0~255之间的整数值。

此时你会看到的结果是 0

默认状态下,shell脚本会以脚本中的最后一个命令作为退出状态码。所以一般情况下,在shell脚本中以 exit 命令的值来指定shell命令的退出状态码。但是退出状态码的范围是 0 ~ 255, 退出值超出这个范围将会执行取模运算。例如通过exit 命令指定返回值为300,经过取模运算,那么退出状态码就为44。

利用shell脚本执行ssh远程另一台主机执行命令并返回命令的结果集

假设从主机A,检查主机B上的进程,
需要在主机B上建立检查用户,例如叫x,
并设置通过public key认证登录SSH,不会可以google搜一下,
然后,在A机器上执行:
ssh x@B ~/***** 》 *****
*****就是B机器上放置在x目录下的脚本。
输出结果应该是写到了*****
或者另一种写法
result=`ssh x@B ~/*****`
结果直接保存到result变量中了。
暂时没有linux环境,所以没有实际测试,你自己试试吧

shell脚本如何回显执行的命令

不显示任何输出信息可以在产生输出信息的位置加 》 /dev/null,例如 echo aaa 》 /dev/null,这样不会产生任何输出信息。

文章分享结束,shell脚本返回执行结果和怎么在shell脚本里面获得sqlplus执行的结果的答案你都知道了吗?欢迎再次光临本站哦!
本文编辑:admin

更多文章:


jupyter怎么运行python程序(写Python使用那个IDE方便点,有个可以在网页上写代码实时出结果的那个是哪个)

jupyter怎么运行python程序(写Python使用那个IDE方便点,有个可以在网页上写代码实时出结果的那个是哪个)

关于jupyter怎么运行python程序,有一个概念至关重要,那就是写Python使用那个IDE方便点,有个可以在网页上写代码实时出结果的那个是哪个。它为何如此重要?且听我们慢慢道来。

2026年5月10日 13:40

软件测试工程师需要考什么证?软件评测师算国家职业资格证吗(全脑培训师资格证书)

软件测试工程师需要考什么证?软件评测师算国家职业资格证吗(全脑培训师资格证书)

其实软件评测师的问题并不复杂,但是又很多的朋友都不太了解软件测试工程师需要考什么证,因此呢,今天小编就来为大家分享软件评测师的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

2026年5月10日 13:20

微信小程序登录怎么做(微信小程序怎么做)

微信小程序登录怎么做(微信小程序怎么做)

我们注意到,那些在微信小程序登录怎么做上表现突出的人,往往都对微信小程序怎么做有独到的见解。这并非巧合。

2026年5月10日 13:00

aided翻译(计算机辅助翻译和机器翻译有何区别)

aided翻译(计算机辅助翻译和机器翻译有何区别)

本篇内容旨在成为您理解aided翻译的实用手册,其中计算机辅助翻译和机器翻译有何区别将是我们要重点打磨的章节。

2026年5月10日 12:40

shell脚本返回执行结果(怎么在shell脚本里面获得sqlplus执行的结果)

shell脚本返回执行结果(怎么在shell脚本里面获得sqlplus执行的结果)

本文旨在解决您关于shell脚本返回执行结果的两大困惑:一是理清基本概念,二是深入解析怎么在shell脚本里面获得sqlplus执行的结果。内容干练,直奔主题。

2026年5月10日 12:20

tooth有几个音节?Android开发之蓝牙(Bluetooth)

tooth有几个音节?Android开发之蓝牙(Bluetooth)

从一个常见的误区说起:很多人学tooth,却忽略了tooth有几个音节。结果事倍功半。希望你不会再犯这个错误。

2026年5月10日 12:00

unity sendmessage(如何在Unity3d中实现和网页数据的交互)

unity sendmessage(如何在Unity3d中实现和网页数据的交互)

承接之前对unity sendmessage的讨论,本篇我们将视角下沉,专门来聊聊实操中无法回避的如何在Unity3d中实现和网页数据的交互问题,让知识落地。

2026年5月10日 11:40

curved(curved是什么意思英语)

curved(curved是什么意思英语)

今天这份关于curved的指南,将用80%的篇幅讲透curved是什么意思英语这个决定成败的细节,绝对让你不虚此行。

2026年5月10日 11:20

mvc拦截器只执行了一次(求助SpringMVC拦截器不起作用)

mvc拦截器只执行了一次(求助SpringMVC拦截器不起作用)

从我第一次听说mvc拦截器只执行了一次到真正弄懂求助SpringMVC拦截器不起作用,也走过一些弯路。下面就把我的学习心得分享给大家,希望能让您的入门之路更顺畅。

2026年5月10日 11:00

jquery弹出div窗口(如何在jquery中弹出div层并在div层中绑定查询的数据)

jquery弹出div窗口(如何在jquery中弹出div层并在div层中绑定查询的数据)

老铁们,关于jquery弹出div窗口,你可能听过不少说法。今天,咱们就坐下来好好聊聊如何在jquery中弹出div层并在div层中绑定查询的数据,保证让你豁然开朗。

2026年5月10日 10:40

最近更新

unity sendmessage(如何在Unity3d中实现和网页数据的交互)
2026-05-10 11:40:03 浏览:0
curved(curved是什么意思英语)
2026-05-10 11:20:04 浏览:0
热门文章

split函数 sql(求sql split函数的用法)
2026-03-26 20:40:01 浏览:1
mysql insert into字段顺序问题(mysql insert into的问题)
2026-04-13 16:00:02 浏览:1
标签列表