疯子姓张

一定要站在巨人的肩膀上去学习。

导航

shell的异常处理

1 $? 获取上一个命令的退出状态

 1 #! /bin/bash
  2 cp /home/homework/ha/dir /home/homework/ha/h >/dev/null
  3 if [ "$?" != "0" ]; then
  4   echo "yyyyy"
  5 else
  6   echo "zzzz"
  7 fi

//写的时候要紧跟着上一条命令,不然捕获错了!!!

 

2 &&或者||

 

 1 #! /bin/bash
 2 cp /home/homework/ha/dir /home/homework/ha/h >/dev/null || echo "错误"
  
// && 是前一个条件对了才执行后面的,
// || 是前一个条件执行错了才执行后面的

 

 

 

3 trap

 

USAGE: trap [action condition ...]

action 可以是 shell 内建指令、外部命令及脚本中的函数等

action 还可是”"(空)、’-'等,分别代表忽略相应信号及重置相应信号为默认行为。

===========

有哪些condition: (trap -l  //输出所有信号)

以下是常用的:

EXIT:在shell退出前执行trap设置的命令,也可以指定为0  //程序非正常退出的资源回收的时候用

DEBUG:在任何命令执行前执行trap设置的命令,但对于函数仅在函数的第一条命令前执行一次

ERR:在命令结果为非0时,执行trap设置的命令

 

posted on 2020-05-25 22:04  菠萝奶油饭  阅读(47)  评论(0编辑  收藏  举报