Bash διαλόγου κουμπί ακύρωσης επιστρέφει με έξοδο COD 0? έτσι είναι το κλειδί διαφυγής

ψήφοι
0

Έχω δημιουργήσει μια απλή διαλόγου μενού, αλλά το κουμπί ακύρωσης και το κλειδί διαφυγής επιστρέφουν 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

Δημοσιεύθηκε 14/02/2020 στις 00:05
πηγή χρήστη
Σε άλλες γλώσσες...                            


1 απαντήσεις

ψήφοι
1

Αποθηκεύετε την κατάσταση εξόδου της προηγούμενης 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);
exitStatus=$?
exec 3>&-;
echo "selected: $selection exit code: $exitStatus"
Απαντήθηκε 14/02/2020 στις 00:19
πηγή χρήστη

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more