0

我试图返回dialog命令提出的问题的结果。但是当我尝试这样做时,它会冻结,当我按下箭头或输入时,它会清除屏幕,我只看到 : numerical argument nessecary. 我认为这是一个错误抛出return,但我不知道为什么?这不是 Dialog 的错误,因为相同的命令没有return工作。

function BUL_askYesNo()
{
        return $(dialog --yesno "$1" 0 0)
}

我尝试使用 KDialog,它可以工作,所以我不知道 Dialog 有什么问题......

4

1 回答 1

2

当您dialog在命令替换中运行时$(),标准输出不再是终端。

您需要将其传递给dialog

#!/usr/bin/env bash
function BUL_askYesNo()
{   
    exec 3>&1
    return $(dialog --yesno "$1" 0 0 2>&1 1>&3)
}
BUL_askYesNo Hello

return仍然无法正常工作。我认为这要简单得多:

#!/usr/bin/env bash
function BUL_askYesNo()
{   
    dialog --yesno "$1" 0 0
}
BUL_askYesNo Hello
于 2020-07-07T22:29:54.943 回答