tritonas00 Δημοσ. 30 Νοεμβρίου 2014 Share Δημοσ. 30 Νοεμβρίου 2014 αυτο εννοεις? if [[ "$REPLY" = "Enter" ]] αν ναι, nope. Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
Ilias95 Δημοσ. 30 Νοεμβρίου 2014 Share Δημοσ. 30 Νοεμβρίου 2014 Εννοεί if [[ "$REPLY" = "" ]] .Όταν χρησιμοποιείς το [ χρησιμοποιείς απευθείας την test command (σαν alias είναι ουσιαστικά) που έχει άλλο τρόπο για να αναγνωρίζει το enter (δεν θυμάμαι πως). Το [[ για τους ελέγχους είναι built-in του bash. Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
tritonas00 Δημοσ. 30 Νοεμβρίου 2014 Share Δημοσ. 30 Νοεμβρίου 2014 ουτε αυτο παιζει. Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
Ilias95 Δημοσ. 30 Νοεμβρίου 2014 Share Δημοσ. 30 Νοεμβρίου 2014 ουτε αυτο παιζει. [ilias@archpc ~]$ read a [ilias@archpc ~]$ if [[ "$a" = "" ]]; then echo "enter pressed"; fi enter pressed [ilias@archpc ~]$ Προφανώς δίνω Enter σαν input. Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
Oxygene Δημοσ. 30 Νοεμβρίου 2014 Share Δημοσ. 30 Νοεμβρίου 2014 Εννοώ κάτι τέτοιο: echo "Enter key" read -n 1 REPLY list=(koko kiki kaka) select c in ${list[@]}; do if [[ "$REPLY" = "q" ]] || [[ "$REPLY" = "Q" ]]; then exit elif [[ "$REPLY" = [0-9]* ]] && [[ "$REPLY" -gt 0 ]] && [[ "$REPLY" -le ${#list[@]} ]]; then kk="$c" break else break fi done Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
tritonas00 Δημοσ. 30 Νοεμβρίου 2014 Share Δημοσ. 30 Νοεμβρίου 2014 δεν καταλαβατε. δεν θελω να χρησιμοποιήσω την read. θελω στο παραδειγμα οπως ακριβως το εδωσα, οταν παταω σκετο enter να κανει break η loop.δηλαδη κατι μεσα στην λουπα που να λεει οτι αν η REPLY ειναι σκετο enter κανε break.γινεται? Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
Oxygene Δημοσ. 30 Νοεμβρίου 2014 Share Δημοσ. 30 Νοεμβρίου 2014 Μόνο όταν πατάς Enter να κάνει break; Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
tritonas00 Δημοσ. 30 Νοεμβρίου 2014 Share Δημοσ. 30 Νοεμβρίου 2014 Μόνο όταν πατάς Enter να κάνει break; yeap Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
Oxygene Δημοσ. 30 Νοεμβρίου 2014 Share Δημοσ. 30 Νοεμβρίου 2014 Τότε βάζεις ... elif [[ "$REPLY" == "" ]]; then break fi Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
tritonas00 Δημοσ. 30 Νοεμβρίου 2014 Share Δημοσ. 30 Νοεμβρίου 2014 δεν παιζει λεμε καθε φορα που δινω enter απλα επαναλαμβανεται η λουπα. Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
pmav99 Δημοσ. 30 Νοεμβρίου 2014 Share Δημοσ. 30 Νοεμβρίου 2014 #!/usr/bin/env python while True: if input() == "": break Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
Ilias95 Δημοσ. 30 Νοεμβρίου 2014 Share Δημοσ. 30 Νοεμβρίου 2014 Το REPLY που το διαβάζεις και πως; Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
tritonas00 Δημοσ. 30 Νοεμβρίου 2014 Share Δημοσ. 30 Νοεμβρίου 2014 μεσα στην select, buildin variable ειναι Also applicable to select menus, but only supplies the item number of the variable chosen, not the value of the variable itself. οτι δινω μπαινει στην REPLY και κανω τους ελεγχους μου. Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
firewalker Δημοσ. 1 Δεκεμβρίου 2014 Share Δημοσ. 1 Δεκεμβρίου 2014 Για δες μήπως μπορείς να κάνεις έλεγχο για null char. Ok, άκυρο. Το δοκίμασες. Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
imitheos Δημοσ. 1 Δεκεμβρίου 2014 Share Δημοσ. 1 Δεκεμβρίου 2014 αυτο εννοεις? if [[ "$REPLY" = "Enter" ]] αν ναι, nope. ουτε αυτο παιζει. θελω στο παραδειγμα οπως ακριβως το εδωσα, οταν παταω σκετο enter να κανει break η loop. δηλαδη κατι μεσα στην λουπα που να λεει οτι αν η REPLY ειναι σκετο enter κανε break. γινεται? select name [ in word ] ; do list ; done The list of words following in is expanded, generating a list of items. The set of expanded words is printed on the standard error, each preceded by a number. If the in word is omitted, the positional parameters are printed (see PARAMETERS below). The PS3 prompt is then displayed and a line read from the stan‐ dard input. If the line consists of a number corresponding to one of the displayed words, then the value of name is set to that word. If the line is empty, the words and prompt are dis‐ played again. If EOF is read, the command completes. Any other value read causes name to be set to null. The line read is saved in the variable REPLY. The list is executed after each selection until a break command is executed. The exit status of select is the exit status of the last command executed in list, or zero if no commands were executed. % cat tmp.sh #!/bin/bash list=(koko kiki kaka) select c in ${list[@]}; do echo REPLY is $REPLY if [ "$REPLY" = "q" ] || [ "$REPLY" = "Q" ]; then exit fi done % ./tmp.sh 1) koko 2) kiki 3) kaka #? 1 REPLY is 1 #? k REPLY is k #? <--- Edo einai to enter 1) koko 2) kiki 3) kaka #? q REPLY is q Στην περίπτωση του enter δεν εμφανίζεται καθόλου το μήνυμα "REPLY is τάδε". Αυτό, σε συνδυασμό με την manpage του bash, μου δίνουν την εντύπωση ότι το enter το δουλεύει εγγενώς η select και δεν πάει καθόλου μέσα στο σώμα του βρόχου. Μπορεί να κάνω λάθος φυσικά. 4 Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα