# non-interactive # error read -n -1 # from pipe -- should work, but doesn't change tty attributes echo abcdefg | { read -n 3 xyz echo $xyz } # fewer chars than specified echo ab | { read -n 3 xyz echo $xyz } read -n 1 < $0 echo "$REPLY"