[20210107]编写bash shell脚本遇到的问题.txt --//上午写bash shell脚本,遇到一些问题,主要是自己不经常写,而且写的脚本往往是自用,里面检测并不是很严格。 --//遇到的问题做一个记录: 1.EOF问题: --//EOF,导致脚本执行失败: --//可以参考链接http://blog.itpub.net/267265/viewspace-2732891/ --//真心不应该使用``引用命令.在分辨率很高的情况下根本看不见,最好改用$()方式.感觉使用'EOF'更加清晰一些. otrace=$(sqlplus -S -l / as sysdba <<'EOF' set head off select VALUE from v$diag_info where name='Diag Trace'; quit EOF ) 2.没有考虑数据库是否启动的情况.应该加入判断. wc_count=$(ps -ef | grep [o]ra_pmon_${ORACLE_SID}|wc -l) if [ $wc_count -eq 1 ] ; then otrace=$(sqlplus -S -l / as sysdba <<EOF set head off select VALUE from v\$diag_info where name='Diag Trace'; quit EOF ) oadump=$(sqlplus -S -l / as sysdba <<EOF set head off select VALUE from v\$parameter where name='audit_file_dest'; quit EOF ) fi 3.注意sqlplus执行后赋值的环境变量: --//实际上这个问题以前也遇到过.通过例子说明: oo=$(sqlplus -S -l / as sysdba <<'EOF' set head off select VALUE from v$diag_info where name='Diag Trace'; quit EOF ) $ echo $oo /u01/app/oracle/diag/rdbms/book/book/trace $ echo "$oo" /u01/app/oracle/diag/rdbms/book/book/trace --//两者的显示不一样.我感觉还是处理掉这个回车问题.我采用的方式如下: otrace=$(echo $otrace) oadump=$(echo $oadump) 4.test -n 判断问题: --//我在这里栽得跟头更大. --// -n STRING the length of STRING is nonzero $ [ -n $ORACLE_SID ] && echo ok ok --//如果bash shell变量不存在呢? $ echo $ORACLE_SID1 $ [ -n $ORACLE_SID1 ] && echo ok ok --//居然也是ok,实际上应该写成如下: $ [ -n "$ORACLE_SID1" ] && echo ok $ echo $? 1 5.另外如果sqlplus中执行语句不长可以写成如下: $ oo= $ oo=$(sqlplus -S -l / as sysdba <<'EOF'^Jset head off^Jselect VALUE from v$diag_info where name='Diag Trace';^Jquit^JEOF^J) $ echo $oo /u01/app/oracle/diag/rdbms/book/book/trace --//或者这样写: $ oo=$(sqlplus -S -l / as sysdba <<< "set head off^Jselect VALUE from v\$diag_info where name='Diag Trace';^Jquit^J") $ echo $oo /u01/app/oracle/diag/rdbms/book/book/trace $ oo=$(sqlplus -S -l / as sysdba <<< "set head off^Jselect VALUE from v\$diag_info where name='Diag Trace';^Jquit^J"| grep '^/') $ echo $oo /u01/app/oracle/diag/rdbms/book/book/trace --// 里面^J可以通过ctrl+v+ctrl+j输入,这样代码更加简洁一些.
[20210107]编写bash shell脚本遇到的问题.txt
来源:这里教程网
时间:2026-03-03 16:22:36
作者:
编辑推荐:
下一篇:
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- Thread 1 cannot allocate new log
Thread 1 cannot allocate new log
26-03-03 - Oracle database 19c中获取当前数据库版本的方法
Oracle database 19c中获取当前数据库版本的方法
26-03-03 - Oracle如何删除表中重复记录保留第一条
Oracle如何删除表中重复记录保留第一条
26-03-03 - Oracle网络服务基础(二)之监听器与TNS配置管理
Oracle网络服务基础(二)之监听器与TNS配置管理
26-03-03 - ORACLE 数据库业务用户密码重置慎用特殊字符
ORACLE 数据库业务用户密码重置慎用特殊字符
26-03-03 - oracle优化之生产系统不改代码解决SQL性能问题的几种方法
oracle优化之生产系统不改代码解决SQL性能问题的几种方法
26-03-03 - Oracle网络服务基础(一)之监听器概念
Oracle网络服务基础(一)之监听器概念
26-03-03 - Oracle 21c新特性预览与日常管理相关的几个新特性
Oracle 21c新特性预览与日常管理相关的几个新特性
26-03-03 - ora-00279 ora-00289 ora-00280
ora-00279 ora-00289 ora-00280
26-03-03 - 深入解析 oracle drop table内部原理
深入解析 oracle drop table内部原理
26-03-03
