Wie kann ein Befehl innerhalb der angegebenen Befehlsliste zufällig ausgeführt werden? Hilfreich für die zufällige Auswahl von Startsound, Hintergrundbild oder Ausführung von Befehlen.
Im Allgemeinen, wenn ich Befehle zur Ausführung wie folgt habe, wie erhalte ich Zufälligkeit:?
#!/bin/bash
<command_1>
<command_2>
<command_3>
.
.
.
<command_n>
Dann möchte ich zufällig nur einen Befehl aus den oben genannten Möglichkeiten ausführen, wenn das Skript ausgeführt wird!
Wie geht das?
command-line
Pandya
quelle
quelle
Antworten:
Die Variable
$RANDOM
(eigentlich eine Bash-Funktion) gibt eine Zufallszahl von 0 bis einschließlich 32767 zurück.Normalerweise möchten Sie die Reichweite begrenzen, indem Sie sie durch eine Zahl teilen und den Rest nehmen, z.
In diesem simplen Beispiel ist es für jeden Divisor, der sich nicht gleichmäßig in 32768 teilt (z. B. alles, was keine Zweierpotenz ist), sehr voreingenommen, aber in Ihrem Szenario denke ich nicht, dass Sie sich Sorgen machen würden durch eine leichte Voreingenommenheit.
Um eine zufällige Datei auszuwählen, benennen Sie Ihre Dateien wie folgt:
Und dann können Sie eine zufällige mit auswählen
quelle
RANDOM
, ich akzeptierte!Laut @neon_overload answer (using
RANDOM
)kann ich
RANDOM
ein Beispielskript wie folgt einfügen (für 4 Befehle):quelle
Wenn Sie Zufälligkeit über eine externe Site und nicht über eine von Ihrem Computer generierte Site wünschen, können Sie dieses Skript verwenden:
Als Rand (MIN) (MAX) ausführen (vorausgesetzt, Sie speichern als / usr / bin / rand)
Möglicherweise müssen Sie zuerst curl installieren (sudo apt-get install curl), wenn es nicht bereits installiert ist.
quelle
Sie können
shuf
Befehle von GNU coreutils verwenden .Beispiel:
Um einen zufälligen Eintrag zu erhalten, können Sie jetzt
-n 1
die erste Zeile der Ausgabe verwenden.Beispiel zum Drucken einer Zufallszahl von 1-100:
Wenn Sie
file
mit folgenden Inhalten haben:Sie können auch Folgendes tun:
quelle