Кнопка отмены диалога Bash возвращается с кодом выхода 0; так же как и escape-ключ - PullRequest
0 голосов
/ 14 февраля 2020

Я создал простой диалог меню, но кнопка отмены и клавиша выхода возвращают 0 для кода выхода. Что я здесь не так делаю?

exec 3>&1;
selection=$(dialog \
    --title "Main Menu" \
    --backtitle "$BACK_TITLE" \
    --menu "Choose an option to configure. Up and down arrows change selection. Use the Enter key to make a selection." "$HEIGHT" "$WIDTH" 5 \
    0 "Select Directory" \
    1 "Select File Extension" \
    2 "Options" \
    3 "Execute with current config" \
    4 "Exit" \
    2>&1 1>&3);
exec 3>&-;
exitStatus=$?
echo "selected: $selection exit code: $exitStatus"

вышеописанное выдает, когда я нажимаю клавишу выхода или кнопку отмены.

selected: exit code: 0

1 Ответ

1 голос
/ 14 февраля 2020

Вы сохраняете статус выхода предыдущей команды exec, а не dialog. Поставить exitStatus=$? сразу после selection=....

exec 3>&1;
selection=$(dialog \
    --title "Main Menu" \
    --backtitle "$BACK_TITLE" \
    --menu "Choose an option to configure. Up and down arrows change selection. Use the Enter key to make a selection." "$HEIGHT" "$WIDTH" 5 \
    0 "Select Directory" \
    1 "Select File Extension" \
    2 "Options" \
    3 "Execute with current config" \
    4 "Exit" \
    2>&1 1>&3);
<b>exitStatus=$?
exec 3>&-;</b>
echo "selected: $selection exit code: $exitStatus"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...