I would use the bash text library I created that streams text to the display a character at a time and includes grammer pauses. Minus the library the code would be something like this: # Would be located in a message file containing all messages. msg() # This sets the message speed. { slowmsg "$@" #fastmsg "$@" } hello=( "Hello, My name is Edge." "..." "I enjoy programming and technology, What do you enjoy?" " " ) # Start of the main code file using the library. #!/usr/bin/env bash . ./libtext . ./msgfile msg "${hello[@]}" The result would be similar to what you see in this video: https://youtu.be/eO90cmRc01c?t=1m46s