2013-03-07 58 views
0

當調用字符串中的變量時,我的ruby程序導致不需要的換行符。ruby​​輸出到文件導致不需要的換行符

該字符串然後被打印到文本文件。在這個文本文件中有很多不需要的換行符。

繼承人我的代碼。


puts 'What is the 2nd Octet?' 
second_octet = gets 
puts 'What is the 3rd Octet?' 
third_octet = gets 
puts 'What is the vlan number?' 
vlan_number = gets 

vrf_number = <<-eos 
123#{vlan_number} 
eos 

router_config = <<-eos 
interface Bundle-Ether7.#{vlan_number} 
description * #{description_name} * 
mtu 9216 
vrf #{vrf_number} 
ipv4 address 10.#{second_octet}.#{third_octet}.252 255.255.255.0 

eos 

File.open(config, 'w') { |file| file.write(router_config) }` 

我收到換行後,我打電話變量所以有行之間的差距,這是與second_octet和third_octet變量非常討厭,因爲它拆分跨多行的IP地址。

任何幫助將是偉大的!謝謝!

回答

3

gets返回的字符串包含return/enter鍵中的換行符(\n\r\n)。您需要執行gets.chomp來取消尾隨的換行符,或者gets.strip以消除前導空格和尾隨空格。任何一個人都應該在你的情況下工作。

+0

謝謝你,工作得很好。不過,在定義vrf_number的位置後,我仍然會出現換行符。 .strip似乎在這裏工作,有沒有相當的? – 2013-03-08 09:18:22

+0

如果我理解你的問題,你可以在定義'vrf_number'後''vrf_number.strip!' - strip!'直接改變字符串,而不是返回一個新的字符串 - 或者改變'vrf_number = << - eos'到'vrf_number = << - eos.strip',它會在將字符串存儲到'vrf_number'之前將其剝離。 – iamnotmaynard 2013-03-08 15:12:57

+0

在irb中嘗試這些可能會有所幫助,因此您可以看到結果並進行微調,直到按照您的想法完成。 – iamnotmaynard 2013-03-08 15:14:37

相關問題