вырезать `%’ из выходных данных, созданных командой `dh -H`

#ruby

#ruby

Вопрос:

Я новичок в написании сценариев, я пытаюсь написать простой скрипт для проверки sensu, чтобы создать предупреждение о нехватке места на диске.

Приведенная ниже команда создает выходные данные:

 #!/usr/bin/ruby
a =  `df -h / | grep -v "Filesystem" | awk '{print $5}'`
puts a
  

Предположим, что выходные данные являются 35%

теперь я хочу удалить % , когда я пытаюсь использовать a.chop! , все еще не удаляя %

Не мог бы кто-нибудь, пожалуйста, помочь мне удалить % из вывода.

Комментарии:

1. Вы могли бы использовать 2 фрагмента, один для символа новой строки, другой для % в конце. Попробуйте a.chop!.chop!

2. Используйте a.to_i , он игнорирует посторонние символы

3. a.chop!.chop! заставил меня смеяться! 1

Ответ №1:

Значение, возвращаемое вашей командой, имеет новую строку в конце:

 a
# => "35%n"
  

Чтобы удалить % using chop , вам нужно strip! сначала это сделать:

 a.strip!
a.chop!
# => "35"
  

Ответ №2:

Поскольку вы собираетесь использовать это для числового сравнения, просто преобразуйте его в целое число за один шаг:

 a =  `df -h / | grep -v "Filesystem" | awk '{print $5}'`
puts a.to_i
# => 66