Я пишу скрипт Bash. У меня есть переменная в нем, которая является значением с плавающей запятой. Например:
x=2099.2
Мне нужно значение до десятичной точки, то есть только 2099
.
Я пишу скрипт Bash. У меня есть переменная в нем, которая является значением с плавающей запятой. Например:
x=2099.2
Мне нужно значение до десятичной точки, то есть только 2099
.
Вы можете использовать следующее расширение параметра оболочки:
${x%%.*}
Это удаляет все из первой точки.
Смотрите вживую:
$ v=203.4
$ echo ${v%%.*}
203
$ v=2.3.4
$ echo ${v%%.*}
2
Из Справочное руководство по Bash → 3.5.3 Расширение параметров оболочки< /а>:
${параметр%%слово}
Слово расширяется для создания шаблона, как и при расширении имени файла. Если шаблон соответствует конечной части расширенного значения параметра, то результатом расширения является значение параметра с удаленным самым длинным совпадающим шаблоном. Если параметр имеет значение «@» или «», операция удаления шаблона применяется к каждому позиционному параметру по очереди, а расширение представляет собой результирующий список. Если параметр представляет собой переменную массива с индексом «@» или «», операция удаления шаблона применяется к каждому члену массива по очереди, а расширение представляет собой результирующий список.
${x%%.*}
, чтобы удалить все из точки. - person fedorqui 'SO stop harming'   schedule 02.08.2013bsh
скрипт? Неясно, действительно ли вы имеете в видуksh
, как предполагают ваши теги, илиbash
. - person Adrian Frühwirth   schedule 02.08.2013