Bash Adventures: Read a Single Character, Even if It’s a Newline Jan 12th, 2011 tl;dr getc() { IFS= read -r -n1 -d '' "$@" } getc ch echo "$ch" # don't forget to quote it! the explanation