Как вернуть результат диалогового вопроса в функции 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
Другие вопросы по тегам