1

我正在创建一个在我的树莓派上运行的 shell 脚本。在此过程中,我试图简化一些重复的代码,并且我想为如下所示的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

任何人都知道如何将我展示的 --yesnowhiptail 函数的输出倒入变量中?

4

1 回答 1

3

也许你的意思是

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

于 2017-09-07T20:16:29.917 回答