0

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

这是一段代码

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分开?

提前致谢

4

1 回答 1

1

为什么要使用声明?如果你刚刚写了:

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

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

实际上,你可以这样写:

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

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

于 2015-03-15T19:25:31.763 回答