我正在使用声明和鞭尾来创建一个变量。来自 whiptail 的用户输入被定义为带有 dedeclare 的变量。我想使用鞭尾的退出状态(即取消或 esc),但我只是从声明语句中获取退出代码?
这是一段代码
declare DiagRes[$count]=$(whiptail --inputbox "${Description[$count]}" 8 110
--backtitle "OVF Wizard"
--title "${Label[$count]}" 3>&1 1>&2 2>&3 )
如果我在鞭尾上点击取消或 esc,回显 $? 给我 0,因为声明语句成功
有没有办法将退出代码与后面的鞭尾的声明语句分开?
提前致谢
为什么要使用声明?如果你刚刚写:
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 )
因为非关联数组的下标是算术上下文。