zoukankan      html  css  js  c++  java
  • Linux Shell 学习笔记

    2.return与exit区别

    • return 表示从被调函数返回到主调函数继续执行,返回时可附带一个返回值,由return后面的参数指定,当然如果是在主函数main, 自然也就结束当前进程了,如果不是,那就是退回上一层调用。
    • exit(0)表示正常退出执行程序,如果加其它的数值:1,2,....可以表示由于不同的错误原因而退出 。 
    • main函数中exit(0)等价于return 0。

    1. Linux下一条命令或一个进程执行完成会返回一个一个状态码。

    0 === 成功执行 
    非0 === 执行过程中出现异常或非正常退出
    • 在Shell脚本中 最后执行的一条命令将决定整个shell脚本的状态.
    • shell的内部命令exit也可以随时终止shell脚本的执行,返回Shell脚本的状态码 。
    • 当shell脚本执行结束前的最后一个命令是不带参数的exit ,那么 shell脚本的最终返回值 就是 exit 语句前一条语句的返回值,根据这个值可以判断脚本成功执行与否。
    • $? 可以查看 最后一条命令的返回值 该变量可以在shell 脚本中的任何地方使用.

    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。

  • 相关阅读:
    OpenGL3:幼儿园篇 第三章 几何变换
    OpenCV2:应用篇 三维重建
    Word绑定博客园
    Android大学课件SQLite3 数据库操作
    Android Studio导入jar包
    安卓Android基础四天
    学习Android过程中遇到的未解决问题(个人笔记,细节补充,随时更新)
    学习Android过程中遇到的问题及解决方法——电话监听
    学习Android过程中遇到的问题及解决方法——网络请求
    安卓Android基础第三天——数据库,ListView
  • 原文地址:https://www.cnblogs.com/byrhuangqiang/p/3921503.html
Copyright © 2011-2022 走看看