2.return与exit区别
1. Linux下一条命令或一个进程执行完成会返回一个一个状态码。
0 === 成功执行非0 === 执行过程中出现异常或非正常退出
2段示例代码
#! /bin/bash
echo "please input the branch you want to compare"
read $MY_BRANCH
for i in $(cat list)
do
git-diff --quiet $MY_BRANCH $i [--quiet 选项的意思是不要输出比较后各个diff出来的结果]
if [ $? -eq 0 ] [$? 就是上一条命令执行的状态码]
then
echo $i
fi
done
#!/bin/bash
if [ ! -n "$1" ] ;then
echo "sqoop1.sh missing 1 parameter:db.properties."
echo "Usage: ./xxx.sh db.properties"
exit 2
else
echo "the sqoop season is running..."
eval `cat ./db.properties`
sqoop import --append --connect $url --username $username --password $password --target-dir $targetDir --m $num --table $table --fields-terminated-by ‘$deco‘ --where " CUR_DATE LIKE ‘$Jan%‘ OR CUR_DATE LIKE ‘$Feb%‘ OR CUR_DATE LIKE ‘$Mar%‘" > logSqooq1.log 2>&1
# exit 200
fi
对上面第2个shell脚本的说明:
1.进入if,返回值是2;如果进入else;如果所有的sqoop命令运行正常,返回值是0,如果sqoop命令执行有异常,返回值是非0。
2.如果第11行添加 exit 200,那么无论sqoop语句执行异常与否,返回值都是200。
Linux Shell 学习笔记,布布扣,bubuko.com
原文:http://www.cnblogs.com/byrhuangqiang/p/3921503.html