EOF重定向输入

1)我们经常在shell脚本程序中用<

 

  1. sqlplus emssxjk/emssxjk <

  2. select count(*) from sncn_yxyj where create_date like sysdate;

  3. EOF

 

其中的SQL语句相当于在sqlplus程序环境中输入的,这样输入的内容夹在两个EOF之间,可长可短,EOF也可以换成其他任意的字符,大小写不论,只要成对出现即可,例如:

 

  1. sqlplus emssxjk/emssxjk <

  2. select count(*) from sncn_yxyj where create_date like sysdate;

  3. STD


当然这个标志性字符不能用保留字,最常用的还是EOF。

需要注意的是,第一个EOF必须以重定向字符<<开始,第二个EOF必须顶格写,否则会报错。

 

 

 

 

 

 

2)前面执行结果是“假”,那么就执行后面的。

chown uc_ims:oinstall /home/test/usgserverDB -R || return 1

 

 

 

3)#z代表的是该变量是否有值。

 

    if [ -z "$NEWVERSION" ];then

        ai_log -e "get NEWVERSION failed"

        return 1

    fi

 

 

 

 

 

4) [ $? -ne 0 ] && return 1辨识   

function usg_log()

{

 

#如果这一行失败,即不为0,则返回1

    su - uc_ims -c "dbopt -b exec_sql -l \"drop schema aaaa cascAde;\" -u public -U uc_ims -D imsuportal -I UTF8"   

    [ $? -ne 0 ] && return 1

 

 

}

 

 

 

 

 

你可能感兴趣的:(shell)