Получить значение до десятичной точки

Я пишу скрипт Bash. У меня есть переменная в нем, которая является значением с плавающей запятой. Например:

x=2099.2

Мне нужно значение до десятичной точки, то есть только 2099.


person Jahnavi    schedule 02.08.2013    source источник
comment
это может вам помочь, проверьте принятый ответ stackoverflow.com/questions/8777070/   -  person Deepanshu Goyal    schedule 02.08.2013
comment
Вы также можете использовать ${x%%.*}, чтобы удалить все из точки.   -  person fedorqui 'SO stop harming'    schedule 02.08.2013
comment
Что такое bsh скрипт? Неясно, действительно ли вы имеете в виду ksh, как предполагают ваши теги, или bash.   -  person Adrian Frühwirth    schedule 02.08.2013
comment
fedorqui- Ваш ответ работает!   -  person Jahnavi    schedule 02.08.2013


Ответы (1)


Вы можете использовать следующее расширение параметра оболочки:

${x%%.*}

Это удаляет все из первой точки.

Смотрите вживую:

$ v=203.4
$ echo ${v%%.*}
203

$ v=2.3.4
$ echo ${v%%.*}
2

Из Справочное руководство по Bash → 3.5.3 Расширение параметров оболочки< /а>:

${параметр%%слово}

Слово расширяется для создания шаблона, как и при расширении имени файла. Если шаблон соответствует конечной части расширенного значения параметра, то результатом расширения является значение параметра с удаленным самым длинным совпадающим шаблоном. Если параметр имеет значение «@» или «», операция удаления шаблона применяется к каждому позиционному параметру по очереди, а расширение представляет собой результирующий список. Если параметр представляет собой переменную массива с индексом «@» или «», операция удаления шаблона применяется к каждому члену массива по очереди, а расширение представляет собой результирующий список.

person fedorqui 'SO stop harming'    schedule 02.08.2013