我正在尝试理解一个简单的脚本,该脚本使用 unix 中的 sqlplus 命令连接到 Oracle 数据库:
1 sqlplus -s /nolog > /dev/null 2>&1 <<EOF
2 whenever sqlerror exit failure
3 connect $user_pwd
4 exit success
5 EOF
如果我使用的是 unix,那么我使用命令作为连接到 oracle 数据库sqlplus $user_pwd
,并从我使用的命令中出来exit
sqlplus
。请帮助我理解第 1,2,4,5 行。对于专家来说,这可能是一个简单的问题,但我无法理解何时使用这些。
-
-s
用于静音模式(不输出任何内容) -
> /dev/null 2>&1
东西是武力不显示任何东西。(将标准输出和标准错误重定向到/dev/null) -
/nolog
用于不尝试使用命令行参数登录。(此处未提供登录凭据。 -
<<EOF
是一个 heredoc 输入重定向。直到EOF
的行将作为标准输入传递给sqlplus
。(所以这就是为什么最后一行是EOF
) - 关于
whenever
行:http://docs.oracle.com/cd/B19306_01/server.102/b14357/ch12052.htm 因此,如果发生错误,命令的返回值将为失败。 -
connect $user_pwd
将sqlplus
连接到服务器 exit success
使sqlplus返回将成功。 http://docs.oracle.com/cd/B19306_01/server.102/b14357/ch12023.htm#i2697968