如何 return bash 函数中对话问题的结果
How to return the result of a dialog question in a bash function
我试图 return dialog
命令提出的问题的结果。
但是当我尝试这样做时,它冻结了,当我按下箭头或输入时,它清除了屏幕,我只看到 : numerical argument nessecary
。我认为这是 return
抛出的错误,但我不知道为什么?
这不是 Dialog 的错误,因为相同的命令没有 return
工作。
function BUL_askYesNo()
{
return $(dialog --yesno "" 0 0)
}
我试过 KDialog,它可以工作,所以我不知道 Dialog 有什么问题...
当您 运行 dialog
命令替换 $()
时,stdout 不再是终端。
您需要将其传递给 dialog
:
#!/usr/bin/env bash
function BUL_askYesNo()
{
exec 3>&1
return $(dialog --yesno "" 0 0 2>&1 1>&3)
}
BUL_askYesNo Hello
但是return
还是不行。我认为这要简单得多:
#!/usr/bin/env bash
function BUL_askYesNo()
{
dialog --yesno "" 0 0
}
BUL_askYesNo Hello
我试图 return dialog
命令提出的问题的结果。
但是当我尝试这样做时,它冻结了,当我按下箭头或输入时,它清除了屏幕,我只看到 : numerical argument nessecary
。我认为这是 return
抛出的错误,但我不知道为什么?
这不是 Dialog 的错误,因为相同的命令没有 return
工作。
function BUL_askYesNo()
{
return $(dialog --yesno "" 0 0)
}
我试过 KDialog,它可以工作,所以我不知道 Dialog 有什么问题...
当您 运行 dialog
命令替换 $()
时,stdout 不再是终端。
您需要将其传递给 dialog
:
#!/usr/bin/env bash
function BUL_askYesNo()
{
exec 3>&1
return $(dialog --yesno "" 0 0 2>&1 1>&3)
}
BUL_askYesNo Hello
但是return
还是不行。我认为这要简单得多:
#!/usr/bin/env bash
function BUL_askYesNo()
{
dialog --yesno "" 0 0
}
BUL_askYesNo Hello