如何在使用声明 "declare" 变量 bash 时获取退出状态

How to get the an exit status while using declare to "declare" a variable bash

我正在使用 declare 和 whiptail 来创建一个变量。来自 whiptail 的用户输入被定义为带有 declare 的变量。 我想使用 whiptail 的退出状态(即取消或 esc),但我只是从 declare 语句中获取退出代码?

这是一段代码

declare DiagRes[$count]=$(whiptail --inputbox "${Description[$count]}"  8 110 \
                                   --backtitle "OVF Wizard" \
                                   --title "${Label[$count]}" 3>&1 1>&2 2>&3 )

如果我在 whiptail 上点击取消或 esc,回显 $?给我 0 因为声明语句成功

有什么方法可以将退出代码与声明语句从后面的 whiptail 中分离出来吗?

提前致谢

为什么要使用declare?如果您刚刚写道:

DiagRes[$count]=$(whiptail                                  \
                  --inputbox "${Description[$count]}" 8 110 \
                  --backtitle "OVF Wizard"                  \
                  --title "${Label[$count]}" 3>&1 1>&2 2>&3 )

它也可以完成分配,您将获得状态 return。 (如果分配了一个元素,则会自动创建非关联数组,因此您不需要 declare -a 它们,除非您希望它们是本地的。)

其实你可以这样写:

DiagRes[count]=$(whiptail                                 \
                 --inputbox "${Description[count]}" 8 110 \
                 --backtitle "OVF Wizard"                 \
                 --title "${Label[count]}" 3>&1 1>&2 2>&3 )

因为非关联数组的下标是算术上下文