Tôi đang cố gắng in một ntừ chữ ngẫu nhiên , trong đó tôi nhập ntừ chính dòng lệnh, nhưng vì một số lý do, tập lệnh của tôi sẽ cho tôi cùng một câu trả lời mỗi khi sử dụng cùng một giá trị n.
#!/bin/bash
num=$1
egrep "^.{$num}$" /usr/share/dict/words | head -n $RANDOM| tail -n 1
Tôi đang gọi kịch bản của mình như sau:
$ bash var3.sh 5
étude # always the same output when using 5
$ bash var3.sh 3
zoo # always the same output when using 3
trong đó var3.shtên của kịch bản của tôi và 5 là độ dài của từ tôi muốn in ngẫu nhiên.
Làm thế nào để tôi có được nó để in một từ thực sự ngẫu nhiên?
shufhoặc sort -Rnhư được đề xuất trong các câu trả lời. Bạn cũng có thể sử dụng $RANDOM, nhưng theo một cách tiên tiến hơn. Tất cả các công cụ này tạo ra kết quả có thể dự đoán (chúng không thực sự ngẫu nhiên), nhưng chúng nhanh và đủ tốt cho nhiều mục đích.
$RANDOMkhá có khả năng lớn hơn số lượng từ n -letter cho hầu hết các giá trị của n (95,7% thời gian cho n = 3 đối với tôi).