如何从Whiptail返回价值--yesno

时间:2017-09-07 16:16:09

标签: linux raspberry-pi2 whiptail

我正在创建一个shell脚本来运行我的覆盆子pi。在此过程中,我试图简化一些重复的代码,并且我想为下面的whiptail函数创建一个包装器。

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 whiptail函数的输出转换为变量?

1 个答案:

答案 0 :(得分:2)

也许你的意思是

#!/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 =否)。