从嵌套函数停止脚本

时间:2019-04-17 06:39:14

标签: bash

我有这个脚本:

#!/bin/bash

function_1() {
    function_2
    printf world
}

function_2() {
    printf "hello "
    return 1
    printf "not printed"
}

function_1

将打印hello world。我想在第一个printf之后停止在function_2中执行脚本。因此,脚本仅应打印hello。我尝试了return 1,但这只返回到function_1。我也尝试发送earlier answer中建议的终止信号,但是得到的结果与return 1中的结果相同。

2 个答案:

答案 0 :(得分:0)

我相信您希望内置exit。来自Bash manpage

  

exit [ n ]

     

使外壳退出,其状态为 n 。如果省略 n ,则退出状态为最后执行的命令的退出状态。在shell终止之前执行EXIT上的陷阱。

答案 1 :(得分:0)

您可以添加exit 0以在期望的位置以0退出状态退出脚本:

function_2() {
    printf "hello "
    exit 0
    ...