Shell编程之执行后返回


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,只是执行这个命令的进程退出了,而调用者是不会退出的。所以,我们通过这种方式调用函数或者命令时,需要在主进程里面再次进行判断其返回值,然后再决定怎么往下走。
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容