Как вернуть результат диалогового вопроса в функции bash
Я пытался вернуть результат вопроса, заданного из dialog
команда. Но когда я попробовал, он зависает, и когда я нажимаю стрелку или ввод, он очищает экран, и я просто вижу : numerical argument nessecary
. Я думаю, что это ошибкаreturn
а я не знаю почему? Это не ошибка Dialog, потому что та же команда безreturn
Работа.
function BUL_askYesNo()
{
return $(dialog --yesno "$1" 0 0)
}
Я пробовал с KDialog, и он работает, поэтому я не знаю, в чем проблема с Dialog...
1 ответ
Решение
Когда ты бежишь 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