如何从Whiptail返回值--yesno

问题描述:

我正在创建一个shell脚本以在我的覆盆子pi上运行。一路上,我试图简化一些重复的代码,我想为下面的whiptail函数打包。如何从Whiptail返回值--yesno

function yesno() { 
    answer=$(whiptail --yesno "$1" 0 0 3>&1 1>&2 2>&3) 
    echo $answer 
} 

此函数不回应任何内容,我想知道我的语法是否是错误的。在我的终端中输入yesno "Your question"时,该功能会触发。

也回显$?没有帮助,因为它似乎没有捕获任何数据时,不使用return函数。

试图使用return时出现错误,说我需要返回一个整数。

我已经成功在if声明运行该功能,并确信它没有返回一个0或1

if whiptail --yesno "Are you sure you want to clear all SSH keys from the list?" 0 0; then 
    # Do stuff 
fi 

任何人知道如何倒--yesno鞭尾函数I的输出已经显示为一个变量?

也许你的意思是像

#!/bin/bash 
function yesno() { 
    answer=$(whiptail --yesno "$1" 0 0 3>&1 1>&2 2>&3; echo $?) 
    echo "Answer <$answer>" 
} 

yesno "Hello world" 

这在子shell打印$?(0 =是,1 =否)。