Я работаю над сценарием 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.