Вот решение, использующее только echo:
, если вы используете десятичную точку (.) в своем рациональном числе:$ read exp
123.4567
$ int=${exp%%.*}
$ rat=${exp##*.}
$ echo $int.${rat:0:3}
123.456
, если вы используете десятичную запятую (, ]) в вашем рациональном числе (как я использую, и большую часть континентальной Европы): $ read exp
123,4567
$ int=${exp%%,*}
$ rat=${exp##*,}
$ echo $int,${rat:0:3}
123,456
Подробнее см. в Расширенном руководстве по Bash-Scripting: Манипулирование строк.