# 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 } echo abc | { read -N 4 -d$'\n' foo echo $foo } read -n 1 < $0 echo "$REPLY"