如何在使用声明 "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 )
因为非关联数组的下标是算术上下文
我正在使用 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 )
因为非关联数组的下标是算术上下文