执行这个脚本的时候,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
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