zoukankan      html  css  js  c++  java
  • shell中exit与return以及source与sh的区别

    直接看例子

    [root@localhost test]# cat b2.sh
    echo b2
    exit 1
    [root@localhost test]# cat c2.sh
    source ./b2.sh
    return $?
    [root@localhost test]# sh c2.sh 
    b2
    [root@localhost test]# 
    [root@localhost test]# 
    [root@localhost test]# cat b1.sh
    echo b1
    exit 1
    [root@localhost test]# cat c1.sh
    sh ./b1.sh
    echo $?
    [root@localhost test]# sh c1.sh
    b1
    1
    [root@localhost test]# cat b.sh
    echo hhh
    return 1
    You have new mail in /var/spool/mail/root
    [root@localhost test]# cat c.sh
    sh ./b.sh
    echo $?
    [root@localhost test]# sh c.sh
    hhh
    ./b.sh: line 2: return: can only `return' from a function or sourced script
    1
    [root@localhost test]# 
    
    

    总结

    • 在脚本c.sh中sh ./b.sh ,则会重新创建一个shell进程,环境变量可能不同;
    • 在脚本c.sh中source ./b.sh,此时执行b.sh待shell进程与执行c.sh的shell进程是同一个,环境变量是一样的
    • return只能在函数中或者是被source 的脚本中使用
  • 相关阅读:
    要养成记录技术问题的习惯
    js排序方法
    阶乘算法练习
    简易的自定义滚动条加鼠标滑轮事件结合使用
    等虚线框的拖拽
    照片墙效果
    苹果导航菜单效果
    简易封装js库
    JQ 实现切换效果
    三级菜单
  • 原文地址:https://www.cnblogs.com/yldf/p/11900048.html
Copyright © 2011-2022 走看看