Команды 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]' 
  • Как контролировать режим выполнения сценария оболочки?
  • вложенный случай - почему нужно «;;» ставить после возможных команд, а не непосредственно позади «esac»?
  • Как передать параметр с пространством в nohup?
  • Записывать команды только в файл
  • найти определенный шаблон строки из файла в Unix Shell Scripting
  • Создание сценария оболочки на рабочем столе и получение запроса?
  • Как автоматизировать повторяющийся процесс с использованием сценариев оболочки
  • Bash (Ubuntu) - Строки в циклах?
  • Проверьте веб-каталог, если существует файл, если не выходить
  • проверьте, соответствует ли строка допустимому пути в BASH
  • Как объединить куски текстовых файлов в каталог в один или несколько файлов?
  • Linux и Unix - лучшая ОС в мире.