问答详情
源自:2-2 Shell脚本之场景控制脚本(下)

exit 0 和exit 1 是一样的么? if语句里面的 =~ 是什么意思

。。。。。

提问者:qq_阳光_45 2017-07-24 18:14

个回答

  • 慕粉1720382552
    2017-07-26 02:53:30

    使用[[ ... ]]条件判断结构,而不是[ ... ],能够防止脚本中的许多逻辑错误。比如,&&、||、<和> 操作符能够正常存在于[[ ]]条件判断结构中,但是如果出现在[ ]结构中的话,会报错。比如可以直接使用if [[ $a != 1 && $a != 2 ]], 如果不适用双括号, 则为if [ $a -ne 1] && [ $a != 2 ]或者if [ $a -ne 1 -a $a != 2 ]。

    支持字符串的模式匹配,使用=~操作符时甚至支持shell的正则表达式。字符串比较时可以把右边的作为一个模式,而不仅仅是一个字符串,

     [[   =~  ]] 是if判断使用正则表达式的固定格式  ^ 是行开头 [0-9]是表示范围内都是数字 +表示1到多个 $是结尾 ^[0-9]+$ 就是 以数字开头并结尾的。

    以上资料引用自http://blog.csdn.net/taiyang1987912/article/details/39551385以及https://zhidao.baidu.com/question/433044439967176764.html问题最佳答案中的某评论


  • 慕粉1720382552
    2017-07-26 02:27:12

    exit 0 1 2 。。。。。这个是退出码,就像编写程序最后return 0一样,我们可以通过设置不同的退出码来提示用户脚本运行到那一步退出的,一般情况下,0代表正确执行后退出,非0代表多多少少有问题,具体是数字几,都是可以随便设定的。只要能让用户知道具体的退出码代表啥意思。你可以echo $?来查看上一条命令执行的退出码。