#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