博客首页 注册 建议与交流 排行榜 加入友情链接
推荐 投诉 搜索: 帮助

fush76

BLOG
  fush76.cublog.cn

关于作者
姓名:fush76
职业:金融行业,运行维护支持岗
年龄:30
位置:
个性介绍:茶亦醉人,勿需酒,书能香我,何需花.
|| << >> ||
我的分类


shell 中的&&与||
&& 与 || 都是用來"組建"多个 command line 用的:
* command1 && command2 :其意思是 command1 只有在 返回值  为 0 (true) 的条件下执行。
* command1 || command2 :其意思是 command1 只有在 返回值 为 0 (false) 的条件下执行。
 
测试案例如下:

if ([ $answer = 'y' ]) then
      dbaccess $1 < ../sql/load_data.sql &&
      dbaccess $1 < ../sql/upd_null_to_zero.sql ;
#      dbaccess $1 < ../sql/unload_data_to_unl.sql;
    else
      echo "Cancel."
      exit
    fi
 
以上shell中,若 load_data.sql 执行的结果如下:
  846: Number of values in load file is not equal to number of columns.
  847: Error in load file line 289075.
Error in line 1
Near character position 50
0 row(s) deleted.

8894 row(s) loaded.

0 row(s) deleted.

8894 row(s) loaded.
 
      dbaccess $1 < ../sql/load_data.sql 执行完成后,shell 是不会执行 第二句的.
因 load_data.sql 中若只要有一句没有执行成功,dbaccess 这句就会返回false.
 
必须 load_data.sql 中所有的sql 执行成功了才会执行第二句.
 
 

 

发表于: 2007-09-12,修改于: 2007-09-12 19:15,已浏览473次,有评论0条 推荐 投诉


网友评论
 发表评论