Код выхода не меняется в зависимости от нажатой кнопки, диалог для bash - PullRequest
0 голосов
/ 16 мая 2019

Я работаю над сценарием bash, который использует код выхода из списка рассылки Dialog, но каждая кнопка дает один и тот же код выхода.

Я пытался использовать предыдущий рабочий код из другого проекта, и он тоже не работает. Независимо от того, какую кнопку я нажимаю, или если я нажимаю ESC, она всегда завершается в коде 0. Параметры, которые я получаю из массива, отображаются правильно, и в нем отражено имя пользователя, поэтому я не верю, что это так.

Options=()
for file in * ; do
  Data=`cat $file`
  file=$(basename -- "$file")
  if [ "$Data" ] ; then
    Options+=("$file" "$Data" "OFF")
  elif [ ! "$Data" ] ; then
    Options+=("$file" "OFF")
  fi
done

dialog --title "User Menu" --backtitle "Control Panel v2.0" --extra-button --extra-label "EDIT USERS!" --radiolist "Please Select A User (Hit Space Before Enter!):" 10 30 6 "${Options[@]}" 2>./tn
TN=`cat ./tn`

# Get exit status
# 0 means user hit OK button.
# 1 means user hit CANCEL button.
# 3 means user hit EXTRA button.
# 255 means user hit [Esc] key.
response=$?
if [ "$response" == "0" ] ; then
    echo "Chosen User $TN"
    sleep 1
elif [ "$response" == "1" ] ; then
    echo "Canceling..."
    sleep 1
elif [ "$response" == "3" ] ; then
    echo "Launching User Editor..."
    sleep 1
    sudo bash ./Users.sh
elif [ "$response" == "255" ] ; then
    echo "Exiting..."
    exit
fi

Я ожидаю, что при нажатии разных кнопок на самом деле используются разные коды выхода, например, если я нажму дополнительную кнопку, то код выхода будет 3, а не 0.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...