赞
踩
今天在看一个shell脚本时,遇到一个问题。在if判断中出现exit -1 这行代码时,究竟是只退出if判断,还是直接退出shell脚本呢?
脚本如下
- #连接数据库查询系统营业日期,将结果写入临时文件xtrq.txt
- sqlplus system/*****@10.192.***.***:1521/cmisdb <<!
- set heading off;
- set feedback off;
- set term off;
- set verify off;
- spool xtrq.txt;
- select replace(last_openday,'-','') from pub_sys_info;
- spool off
- !
- if [ $? -ne 0 ]
- then
- echo "连接数据库获取系统日期失败!\n"
- exit -1;
- fi
echo "连接数据库获取系统日期成功!\n"
这是一个获取系统日期的sql执行脚本。执行如果出错后,name
echo "连接数据库获取系统日期失败!\n"
这一行还会输出吗 ?
答案是不会。在shell脚本中,如果命令正常执行了,那么会返回0。就是上面判断的 $? 这个符号,得到的值是0,而如果返回的不是0,就意味着命令行没有正确执行成功。而在shell脚本中,exit -1 相当于jiava中的return 命令。会直接退出shell脚本,而不只是退出if判断和循环而已。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。