源 shell 脚本的退出代码
Posted
技术标签:
【中文标题】源 shell 脚本的退出代码【英文标题】:Exit code of a sourced shell script 【发布时间】:2013-01-26 04:54:24 【问题描述】:Shell 脚本可以被获取,即在当前的 shell 中执行,比如
. ~/some_script.sh
但它们也可以通过子shell调用,例如
/bin/bash ~/another_script.sh
编写一个脚本时,我将其方案从采购更改为子shell,然后再返回采购。有些事情让写作变得不同。现在我被退出状态困住了,因为我不确定——return
状态会干扰exit
产生的那些状态吗?因为tldp 上写了一些状态是保留的,但是所有的例子都是关于exit
指令的。那么这些限制是否也与返回码有关?
我在 ABS 指南中找到的所有有用之处是 'A return
命令可选地接受一个整数参数,该参数作为函数的“退出状态”返回给调用脚本,并分配此退出状态到变量 $?.',但我对 'as' 有疑问,并在“退出状态”周围加上引号。
【问题讨论】:
【参考方案1】:return
和 exit
返回的代码是相同的,关键字只是在不同的上下文中使用(return
用于从函数和采购返回,exit
用于退出当前 shell)。
它们本身不会相互干扰,但不带参数的exit
或return
将使用前一个命令的返回值,该值可能已在另一个exit
或return
中指定声明。
【讨论】:
你需要什么样的例子? 第一篇文章中有 tldp.org 的链接。以上是关于源 shell 脚本的退出代码的主要内容,如果未能解决你的问题,请参考以下文章
运行 python 脚本运行 shell 文件时退出代码 191