2020-09-08, 10:48
  #1
Medlem
Bleppe_Bfs avatar
Tänkte skriva ett bashscript som drar ord ur diceware ordlistan.
Tanken är att det skall kunna bli långa wordsallad lösenord men ett steg i taget.

Ordlistan bygger på att man skall kasta fem tärningar så att man får tal mellan 11111 och 66666
Men hur gör man egentligen multipla förfrågningar på $RANDOM utan att få radbyten och annat?

echo $((1 + RANDOM % 6)) ger mig ett tärningskast men hur får jag fler?

edit: man kan stapla dem efter varandra.

echo $((1 + RANDOM % 6))$((1 + RANDOM % 6))$((1 + RANDOM % 6))$((1 + RANDOM % 6))$((1 + RANDOM % 6))

ger 5 tärningskast. Nu är bara frågan hur man fångar outputen som ett case, eller om det är bästa lösningen.

Har formatterat diceware listan såhär.

Kod:
11111) echo "a";;
11112) echo "a&p";;
11113) echo "a's";;
11114) echo "aa";;
11115) echo "aaa";;
11116) echo "aaaa";;
11121) echo "aaron";;
11122) echo "ab";;
11123) echo "aba";;
11124) echo "ababa";;
11125) echo "aback";;
11126) echo "abase";;
11131) echo "abash";;
11132) echo "abate";;
11133) echo "abbas";;
11134) echo "abbe";;
osv...
__________________
Senast redigerad av Bleppe_Bf 2020-09-08 kl. 11:19.
Citera
2020-09-08, 14:47
  #2
Medlem
Det är möjligt att jag missförstått frågan, jag tolkar det som att du vill ha output på en rad.
Kod:
for i in 1 2 3 4 5 
> do
> printf '%u' $((1 + RANDOM % 6))
> done ; printf '\n'
Ovanstående i ksh gav mig:
56664
Citera
2020-09-10, 22:54
  #3
Moderator
vhes avatar
Om din plan är att dra slumpvis ord ur en ordlista verkar det väldigt jobbigt att gå via någon random-funktion i bash. Använder du GNU:s userspace, kan du plocka slumpvis ord med shuf eller sort -R

Kod:
$ shuf -n1 /usr/share/dict/words
expands
$ sort -R /usr/share/dict/words | sed 1q
browbeaten
$ 
Citera

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in