Home  >  Q&A  >  body text

ruby脚本gets方法没有接受输入

执行这个脚本的时候,kee=gets.chomp这行代码没有接受输入,请问是怎么回事?谢谢。

#!/usr/bin/ruby

require 'crypt/blowfish'

unless ARGV[0]
    puts "Usage: ruby encrypt.rb <filename.ext>"
    puts "Example: ruby encrypt.rb secret.stuff"
    exit
end

filename=ARGV[0].chomp
puts filename
c="Encrypted_#{filename}"
if File.exists?(c)
    puts "File already exists."
    exit
end
print "Enter your encryption key (1-56 bytes): "
kee=gets.chomp
begin
    blowfish=Crypt::Blowfish.new(kee)
    blowfish.encrypt_file(filename.to_str,c)
    puts 'Encryption sucess!'
rescue Exception => e
    puts "An error occurred during encryption: \n #{e}"
end
怪我咯怪我咯2710 days ago663

reply all(1)I'll reply

  • PHP中文网

    PHP中文网2017-04-24 09:11:27

    You are calling the gets method in the Kernel. This gets method will try to read the contents of ARGV, unless AGRV is empty, then it will try to read the contents of STDIN.

    http://www.ruby-doc.org/core-2.2.0/Kernel.html#method-i-gets

    What you should call is IO#gets, such as STDIN.gets而不是gets.

    http://www.ruby-doc.org/core-2.2.0/IO.html#method-i-gets

    reply
    0
  • Cancelreply