• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

  • Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

ruby присвоение через gets

mCstl

Green Team
08.08.2017
83
71
BIT
0
Такая проблема возникла, я начал учится ruby (сижу на Backbox (Ubuntu)) .
На второй день решил опробовать присвоение переменной и логические построения
так что написал такой вот код для теста:
Код:
#! /usr/bin/ruby
puts "choose dis"
nm= gets
print (nm)
if nm== "dis" then
  puts "ok "+nm
elsif nm== "sid" then
  puts "ko "+nm
else puts "no"
end
и получаю такой вот вывод:
Код:
$ ruby tst.rb
choose dis
dis #мой ввод
dis
no
попробовал немного по другому написать:
Код:
#! /usr/bin/ruby
puts "choose dis"
nm= gets
print (nm)
if #{nm}== "dis" then
  puts "ok "+nm
elsif #{nm}== "sid" then
  puts "ko "+nm
else puts "no"
end
получил:
Код:
$ ruby tst.rb
choose dis
dis #мой ввод
dis
ok dis
ko dis
no
Решения я так и не нашел нормального. (
Возможно мне пришла в голову глупая идея, но я написал то же самое на python:
Код:
#!/usr/local/bin/python3
print ("start")
print ("put in x")
x= input ("may be www? ")
print (x)
if x== "www":
    print ("ok "+x)
else: print ("no")
вывод был таким:
Код:
$ python ../python/tst.py
start
put in x
may be www? www
Traceback (most recent call last):
  File "../python/tst.py", line 4, in <module>
    x= input ("may be www? ")
  File "<string>", line 1, in <module>
NameError: name 'www' is not defined
Попробовал то же самое на win 10 в Python IDLE и все нормально работало.
То что на ruby я написал все равно на винде то же самое выдало.

Возможно это был глупый способ проверки, потому что я свою глупость стал переваливать на систему. А это ничего не решает. Но попробовать стоило.
Тот кто пишет на ruby подскажите в чем ошибка, потому что именно такого ни где найти не могу.
 

mCstl

Green Team
08.08.2017
83
71
BIT
0
Как оказалось для присвоения значения переменной в ruby используются 2 метода.
Код:
STDOUT.flush  #отчистить буфер
X= gets.chomp
Решил все таки написать сюда, может кто то столкнется с чем то подобным, хотя вряд ли.
 
  • Нравится
Реакции: The Codeby и Vertigo
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!