(Bash): Εντολή για δημιουργία τυχαίου αριθμού

Μερικές φορές, προγραμματίζουμε κάποιο σενάριο Bash …. και πρέπει (για κάποιο λόγο) να δημιουργήσουμε έναν τυχαίο αριθμό.

Για αυτό μπορείτε να προγραμματίσετε μια ολόκληρη εφαρμογή (ή λειτουργία ...) ναι, αλλά ... περίεργα το σύστημά μας το έχει ήδη κάνει 😀

Σε ένα τερματικό, πληκτρολογήστε τα ακόλουθα και πατήστε [Εισαγω]:

ηχώ $ RANDOM

... θα εμφανιστεί ένας αριθμός, θα κάνουν το ίδιο ξανά και θα εμφανιστεί ένας άλλος αριθμός και ούτω καθεξής 🙂

Αυτό που κάνει είναι να σας δείξει έναν τυχαίο αριθμό (οποιοδήποτε) μεταξύ 0 και 32768 (ακέραιος, δηλαδή χωρίς κόμμα).

Εάν θέλετε να είναι ένας τυχαίος αριθμός, αλλά μεταξύ 0 και ... ας πούμε 100, μπορείτε να το βάλετε αυτό 😀

echo $ (($ RANDOM% 100))

Το ίδιο, ένα άλλο παράδειγμα ... αν θέλετε να είναι ένας αριθμός μεταξύ 0 και 29 θα ήταν:

echo $ (($ RANDOM% 29))

Δεν είναι κατανοητό; 😀

Εάν το χρησιμοποιούν σε ένα σενάριο bash που κάνουν, για να αντιστοιχίσουν την παραγόμενη τιμή (έναν τυχαίο αριθμό) σε μια μεταβλητή θα ήταν:

VARIABLE = "echo $ (($ RANDOM))"

Λοιπόν, αυτό είναι, δεν ξέρω για σένα ... αλλά ξέρω ότι θα μου φανεί χρήσιμο κάποια στιγμή χαχαχα.

αφορά


Αφήστε το σχόλιό σας

Η διεύθυνση email σας δεν θα δημοσιευθεί. Τα υποχρεωτικά πεδία σημειώνονται με *

*

*

  1. Υπεύθυνος για τα δεδομένα: Miguel Ángel Gatón
  2. Σκοπός των δεδομένων: Έλεγχος SPAM, διαχείριση σχολίων.
  3. Νομιμοποίηση: Η συγκατάθεσή σας
  4. Κοινοποίηση των δεδομένων: Τα δεδομένα δεν θα κοινοποιούνται σε τρίτους, εκτός από νομική υποχρέωση.
  5. Αποθήκευση δεδομένων: Βάση δεδομένων που φιλοξενείται από τα δίκτυα Occentus (ΕΕ)
  6. Δικαιώματα: Ανά πάσα στιγμή μπορείτε να περιορίσετε, να ανακτήσετε και να διαγράψετε τις πληροφορίες σας.

  1.   Όσκαρ dijo

    Λοιπόν, το έχω δοκιμάσει και επιστρέφει μόνο έναν τετραψήφιο αριθμό, πώς μπορώ να το κάνω μεγαλύτερο;
    Πολύ ενδιαφέρουσα συμβουλή, ευχαριστώ.

    1.    KZKG ^ Γκάρα dijo

      Επιστρέφει έναν αριθμό μεταξύ 0 και 32768, δεν κατάφερα να λάβω μεγαλύτερους αριθμούς.

  2.   josue dijo

    και μπορεί να δημιουργήσει εξωδικασμούς ????

  3.   κοράκι dijo

    VARIABLE = "echo $ (($ RANDOM))"

    Αυτό λειτουργεί αλλά δεν είναι βέλτιστο, για τον απλό λόγο ότι το RANDOM είναι μια μεταβλητή και μπορείτε να κάνετε:
    μεταβλητή = $ RANDOM
    και αυτό είναι! μην εκτελείτε ηχώ σε ένα τερματικό aprte (αυτό είναι που κάνετε)

    1.    KZKG ^ Γκάρα dijo

      Ναι, προφανώς μπορεί να επιτευχθεί έτσι ... η μόνη διαφορά είναι ότι αργότερα, για να δείτε τον αριθμό που πήρε η μεταβλητή (αφού ο χρήστης δεν είναι μαντέας), θα ήταν απαραίτητο να κάνετε ηχώ…. και στο τέλος, αυτό που κάνω εδώ είναι να κάνω απλώς την ηχώ (έτσι ώστε ο χρήστης να δει τι αριθμό έχει ληφθεί) από την αρχή.

      Κατανοώ τον εαυτό μου; 🙂

  4.   Γουίλμερ Μπολιβάρ dijo

    Ένας άλλος τρόπος για να δημιουργήσετε έναν τυχαίο αριθμό, αν και αυτή τη φορά θα ήταν αυτή η εντολή:

    ημερομηνία "+% N" | κοπή-γ 9

    Αυτό θα μας έδινε την ημερομηνία σε νανοδευτερόλεπτα με 9 ψηφία. Αν θέλουμε ένα μόνο ψηφίο, τότε βάζετε το "cut -c 9" (το τελευταίο ψηφίο είναι πάντα πιο τυχαίο γιατί είναι το μικρότερο από τον αριθμό). Αν θέλουμε 2 αριθμούς τότε βάζουμε το "cut - c 8,9". Αν θέλουμε τρία σχήματα τότε "cut -c 7-9" (αρχίζουμε να χρησιμοποιούμε το παύλα).

    Το μόνο κακό σε αυτό είναι εάν θέλουμε να έχουμε πολλούς τυχαίους αριθμούς στη σειρά σε σύντομο χρονικό διάστημα, επειδή αυτός είναι ένας τυχαίος αριθμός που βασίζεται σε μια ημερομηνία με την ώρα του. Δηλαδή, αν κάνουμε ένα με αυτήν την εντολή μπορούμε να το δούμε:

    $ για i σε "seq 1 1 500"; ημερομηνία "+% N"; Έγινε

    ...
    ...
    ...

    308311367
    310807595
    313273093
    315725181
    318186139
    320671403
    323360117
    325733353
    328335462
    330694870
    333259893
    335858999
    338375622
    340798446

    ...
    ...
    ...

    Νομίζω ότι είναι σαφές, σωστά; Τα σχήματα στα αριστερά είναι πιο παρόμοια σε σύντομο χρονικό διάστημα, φυσικά, και εκείνα στα δεξιά είναι πιο «τυχαία».

  5.   μαύρο μάτι dijo

    μμμ…. Μου άρεσε, έχω ένα μίνι σενάριο που μένει για τη δημιουργία τυχαίων αριθμών, ευχαριστώ.

  6.   G. dijo

    Σερβίρει .. και πολλά ..
    ειδικά αν προγραμματίζετε μια διεπαφή σε bash με κωδικό πρόσβασης, ασφάλεια, κ.λπ., κλπ, κλπ, χαχα.
    Εξαιρετική πτέρυγα.

  7.   Ο José Antonio ακολούθησε τον Bent dijo

    Γεια σου.
    Πρώτα απ 'όλα, φυσικά, συγχαρητήρια για αυτόν τον εξαιρετικό ιστότοπο, τον οποίο παρακολουθώ εδώ και πολύ καιρό.
    Και δεύτερον, κάντε μια μικρή σημείωση σε αυτήν την καταχώρηση:
    Όταν ο περιορισμός γίνεται έτσι:

    echo $ (($ RANDOM% 10))

    Στην πραγματικότητα, αυτό που διατάζετε τον διερμηνέα είναι ότι ο αριθμός που δημιουργήσατε είναι πάντα ο συντελεστής% (υπόλοιπο της διαίρεσης) του επόμενου αριθμού, σε αυτό το παράδειγμα, 10.
    Οποιοσδήποτε αριθμός διαιρούμενος με το 10 δεν θα δώσει ποτέ ως υπόλοιπο κάτι μεγαλύτερο από τον ίδιο τον διαιρέτη.
    Το πρόβλημα είναι ότι δεν θα δώσει ούτε τον ίδιο αριθμό, επειδή η διαίρεση με 0 δεν είναι λογική για τον διερμηνέα.

    Αυτό σημαίνει ότι το echo $ (($ RANDOM% 10) θα δώσει αποτελέσματα μεταξύ 0 και 9, αλλά ποτέ 10.
    Η λύση σε αυτήν τη διένεξη είναι να προσθέσετε ένα στο όριό σας, έτσι ώστε ο ίδιος αριθμός να βρίσκεται εντός του τυχαίου εύρους.

    echo $ (($ RANDOM% 11))

    Αυτό θα δώσει αποτελέσματα μεταξύ 0 και 10.

    Ένα χαιρετισμό.

  8.   amiel dijo

    Γεια σας, μόλις έφτιαχνα κάτι τέτοιο, αλλά αντιμετώπισα ένα πρόβλημα.

    Θέλω να φτιάξω 6 διαφορετικούς αριθμούς από το 00 έως το 45 αλλά να μην τους επαναλάβω.

    ηχώ $(($RANDOM%46)) $(($RANDOM%46)) $(($RANDOM%46)) $(($RANDOM%46)) $(($RANDOM%46)) $(($) ΤΥΧΑΙΟ%46))

    ΠΧ: 17 33 16 36 45 27