LINUX.ORG.RU

Ответ на: комментарий от Fatalist

Если тебе такое понадобилось, то либо ты что-то неправильно делаешь, либо задача довольно сложная и специфическая. Если второе, то очевидно ты должен бы был и сам понять, как это сделать и выбрать более подходящий инструмент.

anonymous
()
Ответ на: комментарий от anonymous

возможно, опыта у меня мало, посмотри, может чего подскажешь
вот, кусок скрипта
RES_SERV_TO_CLIENT и RES_CLIENT_TO_SERV содержат в себе целое число (биты)
надо перевести в килобиты или мегабиты, с округлением, которое задается в переменной ACCURACY
ну соответсвенно начальные переменные должны стать строками типа «1.2 Мегабит/с»
в цикле название переменной полюбому надо знать, чтоб вписать в неё новое значение
введение дополнительных переменных или распутывание цикла мне кажется еще худшим вариантом, хотя переменных только две

for i in RES_SERV_TO_CLIENT RES_CLIENT_TO_SERV
do
  if [ ${!i} -ge 1000000 ]; then
    INT_DEL=$(( 1000000 ))
    FLO_DEL=$(( 1000 * $ACCURACY ))
    CHAR='Мега'
  else
    INT_DEL=$(( 1000 ))
    FLO_DEL=$(( 1 * $ACCURACY ))
    CHAR='Кило'
  fi
  INT=$(( ${!i} / $INT_DEL ))
  FLO=$(( ${!i} % $INT_DEL / $FLO_DEL ))
  eval $i="$INT\.$FLO\ $CHAR\бит/с"
done

Fatalist
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.