Shell编程之执行后返回

2017-08-17  本文已影响0人  创新lab

title: Shell编程之执行后返回
tags: shell编程,执行后返回


前言

今天一个同事问我这样一个问题,脚本里面有一个函数调用了exit是不是整个脚本都会退出,当时我给出的是肯定的回答,但是这种完全是没有考虑清楚。这种情况,要分不同的调用方式来分情况讨论的。

基本知识点

  1. 我们知道shell函数里面,退出时基本上有两种方式:return和exit。return退出方式的返回值0-255,此时只是退出了这个函数。而exit退出的方式,是退出这个进程。这两种返回方式都可以通过$?,常见的退出方式基本上需要用echo打印出想要的值。比如以下代码:
    function test() {
     echo "result"
     return 1
     }
     a=$(test)
     echo $?
     echo $a
     
     上面代码的返回值结果是:
     result
     1
    
  1. shell里面,调用命令并获得其返回值我们一般通过以下方式来调用 $()``,但是这种的调用方式是新开一个进程来完成里面的命令来执行的,所以里面的命令如果有exit,只是执行这个命令的进程退出了,而调用者是不会退出的。所以,我们通过这种方式调用函数或者命令时,需要在主进程里面再次进行判断其返回值,然后再决定怎么往下走。
上一篇下一篇

猜你喜欢

热点阅读