Что происходит в баш скрипте?

Не силен в bash, тем более в настолько замудренном)

if [ ${#d_p} -ge 3 ]
then
    ruble=`echo ${d_p:0:${#d_p}-2}`
    penny=`echo ${d_p:${#d_p}-2:${#d_p}}`
    d_r=$(($d_r+$ruble))
    d_p=$penny
else
    penny=`echo ${d_p:${#d_p}-2:${#d_p}}`
fi

В общем понятно, что происходит какая-то работа с переменными. Проверяем, что d_p больше или равно 3, но вот какие расчеты происходят внутри малопонятны. Пробовал подставлять какие-то числа в переменные, что бы посмотреть выхлоп и вопрос остался.


Ответы (1 шт):

Автор решения: Kira BoB

Этот скрипт проверяет длину строки переменной d_p.

Если длина строки больше или равна 3, то скрипт разбивает строку на две части: ruble (рубли) и penny (копейки).

Затем скрипт добавляет рубли к переменной d_r и обновляет переменную d_p значением копеек.

Если длина строки меньше 3, то скрипт просто извлекает значение копеек в переменную penny.

→ Ссылка