Ввод текста из сценария оболочки

Я новичок в сценариях оболочки. Я хотел бы знать, есть ли команда, похожая на «эхо» для отображения текста в терминале, но вместо того, чтобы просто отображать ее сразу, она фактически набирает ее, например, если кто-то на самом деле печатает на терминале?

Я также был бы признателен, если бы кто-нибудь мог указать мне на страницы, объясняющие простые сценарии, такие как меню и т. Д.

  • Почему тире расширяется \\\\ по-разному до bash?
  • Создать символическую ссылку - перезаписать, если таковая существует
  • Удаление черной полосы в sed
  • comm сбой при вводе переменной bash
  • Как определить имя функции callee в скрипте
  • Почему бы не использовать псевдоним в составных командах?
  • Каковы различные способы отображения сообщения в оболочку bash после входа пользователя в систему?
  • bind -x оставляет терминал в состоянии, напоминающем ^ V
  • Скопируйте файлы, созданные сегодня, без команды FIND и SFTP на другой сервер
  • Устаревшие версии Debian и Bash Shellshock
  • Можно ли отправлять массивы из bash в программу на C ++?
  • Как печатать одинаковые строки несколько раз с переменными, измененными с помощью Sed / Awk / anything?
  • 2 Solutions collect form web for “Ввод текста из сценария оболочки”

    Вот чистое решение bash :

    string='foo bar base' for ((i=0; i<=${#string}; i++)); do printf '%s' "${string:$i:1}" sleep 0.$(( (RANDOM % 5) + 1 )) done 
    • ${#variable} – длина строки
    • printf может заменить echo для вывода строки и формата вывода:
    • %s сообщает printf чтобы отобразить строку без новой строки \n
    • ${string:$i:1} – это bash [расширение параметра] 1, чтобы отображать только конкретную букву из строки
    • $(( )) является некоторой арифметикой bash
    • $(( ( RANDOM % 5 ) + 1 )) отображает целое число: от 1 до 5 СЛУЧАЙНО

    бонус

    Это функция для использования с аргументом:

     matrix(){ tput setaf 2 &>/dev/null # green powaaa for ((i=0; i<=${#1}; i++)); do printf '%s' "${1:$i:1}" sleep 0.$(( (RANDOM % 5) + 1 )) done tput sgr0 2 &>/dev/null } matrix 'foo bar base' 

    Я назвал это писателем типа:

     count=0 echo "enter your name" read b sleep 2 a="hello" a=`echo $a" "$b" nice to meet you"` while [ $count -lt $((${#a}+1)) ] do x=`expr substr "$a" $count 1` if [ "$x" != " " ] then echo -n $x sleep 0.2 else echo -n " " fi count=$(($count+1)) done echo " " 
    Linux и Unix - лучшая ОС в мире.