Jak losowo wykonać jedno polecenie na określonej liście poleceń? Pomocne przy losowym wybieraniu dźwięku startowego, tapety lub wykonywaniu poleceń.
Ogólnie, jeśli mam polecenia do wykonania w następujący sposób, to jak mogę uzyskać losowość :?
#!/bin/bash
<command_1>
<command_2>
<command_3>
.
.
.
<command_n>
Następnie chcę wykonać losowo tylko jedno polecenie z powyższych możliwości, gdy skrypt jest uruchomiony!
Jak to zrobić?
command-line
Pandya
źródło
źródło
Odpowiedzi:
Zmienna
$RANDOM
(właściwie funkcja bash) zwraca liczbę losową od 0 do 32767 włącznie.Zazwyczaj chciałbyś ograniczyć jego zasięg, dzieląc go przez pewną liczbę i biorąc resztę, np.
W tym uproszczonym przykładzie będzie to bardzo nieznacznie tendencyjne dla każdego dzielnika, który nie dzieli się równo na 32768 (np. Cokolwiek, co nie jest potęgą dwóch), ale w twoim scenariuszu nie sądzę, abyś był zmartwiony z lekkim uprzedzeniem.
Aby wybrać losowy plik, nadaj swoim plikom nazwę:
A następnie możesz wybrać losowy za pomocą
źródło
RANDOM
, zaakceptowałem!Zgodnie z odpowiedzią @neon_overload (używanie
RANDOM
),mogę umieścić
RANDOM
przykładowy skrypt w następujący sposób (dla 4 poleceń):źródło
Jeśli chcesz losowości za pośrednictwem strony zewnętrznej, a nie tej generowanej przez komputer, możesz użyć tego skryptu:
Uruchom jako rand (MIN) (MAX) (zakładając, że zapisujesz jako / usr / bin / rand)
Być może będziesz musiał najpierw zainstalować curl (sudo apt-get install curl), jeśli nie jest jeszcze zainstalowany.
źródło
Możesz użyć
shuf
polecenia z jądra GNU .Przykład:
Teraz, aby uzyskać jeden losowy wpis, możesz użyć,
-n 1
które wyjścia pierwszego wiersza.Przykład drukowania losowej liczby od 1-100:
Jeśli masz
file
następujące treści:Możesz także zrobić coś takiego:
źródło