Команды Unix для генерации случайного алфавита

Мне нужно написать сценарий для этой программы. выберите случайную букву внутри az . Попросите пользователя угадать письмо, сопоставить его с выбранной буквой. Если они совпадают, отобразите «правильный», иначе введите подсказку, если угаданное письмо находится выше или ниже выбранной буквы. Может ли кто-нибудь продемонстрировать примеры того, как я могу это сделать в оболочке?

3 Solutions collect form web for “Команды Unix для генерации случайного алфавита”

BASH

BASH хорош для этой работы, потому что BASH может легко генерировать алфавит, используя {a..z} и BASH может вводить один символ без необходимости {a..z} ENTER

 $ cat guesschar.bash c=$(echo {a..z} | tr -d ' ') x=${c:$((RANDOM%26+1)):1} while read -n1 -p'guess the char: ' ; do echo if [[ $REPLY < $x ]] ; then echo too low... elif [[ $REPLY > $x ]] ; then echo too high... else break fi done echo $x ... 'hit!' $ bash guesschar.bash guess the char: m too high... guess the char: f too low... guess the char: j too low... guess the char: k k ... hit! 
 rand=$(tr -dc '[:lower:]' </dev/urandom | dd bs=1 count=1 status=none) until [ "$in" = "$rand" ] && echo "correct" ; do in=$(stty raw dd bs=1 count=1 status=none </dev/tty stty sane ) echo done 

Я думаю, что вышеизложенное делает то, что вам нужно.

Если вам нужен переносной способ, вы можете попробовать:

 perl -e 'print ("a".."z")[rand 26]' 
  • Как проверить входной параметр для запуска сценария оболочки
  • find внутри backticks не распознается внутри сценария оболочки
  • значение этой строки в службе, созданной с использованием sysintv
  • Bash- Помогите изменить код для пользовательского оператора вывода
  • Помощь при написании скрипта, который входит в систему и выходит из ssh-сервера
  • Как изменить каталог из сценария без вызова сценария. ./script или выйти из сценария при вызове. ./script.sh
  • Отправить письмо от сценария оболочки
  • Работа с оператором if
  • Выполнить список команд с контрольной точкой?
  • Как перемещать файлы с конкретными расширениями во вновь созданные каталоги
  • как объявить переменные командной строки в сценариях оболочки?
  • Linux и Unix - лучшая ОС в мире.