来自控制台I / O的额外字符使用gets

时间:2012-01-11 05:56:19

标签: ruby mkdir gets

我正在尝试构建一个ruby程序,它创建一个目录并使用控制台输入命名。

1 #!/usr/bin/env ruby¬
2 ¬                                                                           
3 puts 'HW date, format MM-DD:'¬
4 ¬
5 directory_name = 'hw_' + gets¬
6 ¬
7 begin¬
8 ▸ if File::directory?(directory_name)¬
9 ▸ ▸ return¬
10 ▸ end¬
11 ▸ Dir.mkdir(directory_name)¬
12 end¬

然而,创建的指示总是在它们的末尾有垃圾字符?

$ ./start_hw.rb 
HW date, format MM-DD:
01-13
$ ls
hw_01-13?   start_hw.rb

如何让它停止放置? (即不可打印的字符)

1 个答案:

答案 0 :(得分:4)

ruby​​ gets函数返回末尾的行结尾字符,因此您应该使用chomp删除它们。

directory_name = 'hw_' + gets.chomp
puts directory_name.inspect  # print it to make sure there is no junk
相关问题