将函数调用分配给变量时终止 bash 脚本

Terminate a bash script when assigning a function call into a variable

我有以下代码来演示:

#!/bin/bash
function demo() {

   echo "This is A"
   exit 1
   echo "This is B"
}


input=$(demo)
echo "${input}"
echo "This is C"

你可以看看如果我运行这个脚本它会打印出如下输出:

This is A
This is C

因为我有 exit 1 函数,脚本没有终止并打印最后一条语句 This is C

但是当我这样调用函数时:

#!/bin/bash
function demo() {

   echo "This is A"
   exit 1
   echo "This is B"
}


demo
echo "${input}"
echo "This is C"

然后程序终止,并没有打印最后一条语句“This is C”。输出是:

This is A

是否有对此的解释以及如何在 exit 1 存在时强制脚本终止以及将函数分配给给定示例的变量。这意味着,在 exit 1

之后不应打印其他语句

变量赋值时可以查看退出状态,失败则退出主脚本

input=$(demo) || exit 1