Мне удалось исправить это, перейдя в Системные настройки -> Приложения -> Веб-браузер
и установив параметр Открыть http и https URL-адреса
на в следующем браузере - > firefox
Это работает с KDE 5, но должно работать аналогично в предыдущих версиях.
Нет. Но $RANDOM возвращает большие числа (от 0 до 32767 ), что, особенно для слов ограниченной длины, показывает тот же результат, поскольку часть head
, вероятно, возвращает все результаты grep (для 3, в моем/usr/share/dict/words
)всего 819 совпадений.
Лучшим решением может быть перетасовка результатов:
egrep "^.{$num}$" /usr/share/dict/words | sort -R | tail -n 1
где -R
означает--random-sort
(расширение GNU sort
).
Простой способ напечатать произвольное числовое-буквенное слово используетshuf
:
egrep "^.{$num}$" /usr/share/dict | shuf -n1
Команда shuf
выводит случайную перестановку входных данных, а флаг -n1
указывает ей выводить только первый элемент из этого результата.
Как указывали другие, основная проблема с вашим кодом заключается в том, что $RANDOM
чаще всего будет значением, намного большим, чем количество слов определенной длины.
Использование только awk
:
$ awk -v len="$num" 'length == len { word[i++]=$0 }
END { print word[int(i*rand())] }' /usr/share/dict/words
Bosniac
Программа считывает все строки заданного файла определенной длины. Они хранятся в массиве words
.
В конце случайный элемент из этого массива выбирается и печатается.