Преобразовать переменную с плавающей точкой в целое число?

Единственной проблемой является раздел MBR, который теперь заменил окна. Каждый раз, когда Вы восстанавливаете окна, это восстанавливает MBR, и удалите GRUB или независимо от того, что записано на нем. Таким образом, теперь Ваш GRUB не находится в MBR, и он непосредственно загружает Вас в окна.

Для восстановления GRUB можно использовать любой живой CD, чтобы загрузиться в человечность и открыть терминал и затем выпустить команду sudo grub-install. Ну, во многих случаях это перестало работать. Для этого необходимо вручную смонтировать корневой раздел и затем переустановить GRUB в него. Это следует как:

sudo fdisk -l 
...list of devices and partions
//here find out the root partition (mine is sda3, so i am condireing /dev/sda3 here)

sudo mkdir /mnt/anyname
sudo mount /dev/sda3 /mnt/anyname
cd /mnt/anyname
sudo grub-install --root-directory=/mnt/anyname /dev/sda

Это переустановит Ваш GRUB. При обнаружении с какой-либо проблемой в установке GRUB просто перейдите к Google, существуют миллионы руководств по "установке личинки в Linux". :)

13
задан jww 9 March 2018 в 03:31
поделиться

3 ответа

Предполагая, что $ myduration является десятичным или целым числом

$ myduration=6.5
$ myduration=$( printf "%.0f" $myduration )
$ echo $myduration
6
22
ответ дан 1 December 2019 в 21:25
поделиться

Удалить содержимое страницы из переменной:

Когда я попробовал вашу команду, myduration содержал HTML-содержимое страницы по URL-адресу, который я использовал в моем тесте, а также временная стоимость. Добавив -s для подавления индикатора выполнения и добавив -o / dev / null к параметрам curl , я смог удалить перенаправление на / dev / null и сохранить только время в myduration .

Поскольку значение myduration , скорее всего, будет коротким, вы можете использовать метод ire_and_curses показывает, что часто дает ноль в качестве результата, который будет меньше единицы, которую вы тестируете (однако, обратите внимание, что в вашем сообщении журнала указано «6 секунд»).

Более точное разрешение:

Если вы хотите получить более точное разрешение, и «6,789». Для значений с более чем тремя десятичными знаками дополнительные цифры усекаются без округления независимо от значения («1,1119» становится «1,111»).

Ваш сценарий с изменениями, которые я упомянул выше, и использующий mult1000 (с моим собственным примером времени):

myduration=$(curl -s -o /dev/null http://192.168.50.1/mantisbt/view.php?id=1 -w %{time_total}); [[ $(mult1000 $myduration) -gt 3500 ]] && echo "`date +'%y%m%d%H%M%S'` took more than 3.5 seconds to load the page http://192.168.50.1/mantisbt/view.php?id=1 " >> /home/shantanu/speed_report.txt

Здесь он разбит на несколько строк (и упрощен), чтобы сделать его более читаемым здесь, в этом ответе:

myduration=$(curl -s -o /dev/null http://example.com -w %{time_total})
[[ $(mult1000 $myduration) -gt 3500 ]] &&
  echo "It took more than 3.5 seconds to load thttp://example.com" >> report.txt
2
ответ дан 1 December 2019 в 21:25
поделиться

Это не совсем понятно, но я думаю , что вы спрашиваете, как преобразовать плавающий- значение точки ( myduration ) до целого числа в bash . Что-то вроде этого может вам помочь, в зависимости от того, каким образом вы хотите округлить свое число.

#!/bin/bash

floor_val=
ceil_val=

function floor() {
    float_in=$1
    floor_val=${float_in/.*}
}

function ceiling() {
    float_in=$1
    ceil_val=${float_in/.*}
    ceil_val=$((ceil_val+1))
}


float_val=$1
echo Passed in: $float_val
floor $float_val
ceiling $float_val

echo Result of floor: $floor_val
echo Result of ceiling: $ceil_val

Пример использования:

$ ./int.sh 12.345
Passed in: 12.345
Result of floor: 12
Result of ceiling: 13
1
ответ дан 1 December 2019 в 21:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: