停止处理源文件并继续

时间:2014-03-03 17:22:12

标签: bash shell coding-style

当编写源于另一个文件的bash时,有时我想跳过处理,如果某些条件为真。现在,我一直是:

  1. 将整个子文件包装在嵌套的if语句中
  2. 在嵌套的if语句中包含对源文件的调用
  3. 这两种策略都有一些缺点。如果我能用这种代码风格编写我的脚本会好得多:

    main.sh

    echo "before"
    . other
    echo "after"
    

    other.sh

    # guard
    if true; then
      # !! return to main somehow
    fi
    if true; then
      # !! return to main somehow
    fi
    
    # commands
    echo "should never get here"
    

    有没有办法做到这一点,以便调用中的echo "after"行?

1 个答案:

答案 0 :(得分:5)

是的,你可以return

if true; then
  return
fi

引用help return

  

return: return [n]

     
    

从shell函数返回。

         

使函数或源脚本以返回值退出        由N指定。如果省略N,则返回状态为        在函数或脚本中执行的最后一个命令。

         

退出状态:        如果shell没有执行函数或脚本,则返回N或失败。