if
テキスト ファイルのステートメントを使用して機器のマッピングを記入するスクリプトを作成しようとしています。
これが私が試したコードです:
入力.txt:
SWITCH
ROUTER
FIREWALL
ROUTER
ROUTER
FIREWALL
SWITCH
SWITCH
ルビーコード:
IO.foreach("input.txt") do |type_equipment|
if type_equipment = "SWITCH"
puts "SWITCH,BMC_COMPUTERSYSTEM,Network,Switch,Ethernet Switch"
elsif type_equipment = "ROUTER"
puts "ROUTER,BMC_COMPUTERSYSTEM,Network,Router,Ethernet Router"
elsif type_equipment = "FIREWALL"
puts "FIREWALL,BMC_COMPUTERSYSTEM,Network,Appliance,Firewall"
end
end
コードは実行されますが、次のように出力されます。
SWITCH,BMC_COMPUTERSYSTEM,Network,Switch,Ethernet Switch
SWITCH,BMC_COMPUTERSYSTEM,Network,Switch,Ethernet Switch
SWITCH,BMC_COMPUTERSYSTEM,Network,Switch,Ethernet Switch
SWITCH,BMC_COMPUTERSYSTEM,Network,Switch,Ethernet Switch
SWITCH,BMC_COMPUTERSYSTEM,Network,Switch,Ethernet Switch
SWITCH,BMC_COMPUTERSYSTEM,Network,Switch,Ethernet Switch
SWITCH,BMC_COMPUTERSYSTEM,Network,Switch,Ethernet Switch
SWITCH,BMC_COMPUTERSYSTEM,Network,Switch,Ethernet Switch
main.rb:6: warning: found = in conditional, should be ==
main.rb:4: warning: found = in conditional, should be ==
main.rb:2: warning: found = in conditional, should be ==
ファイル内の各行を評価し、if
ステートメントと一致する場合は、関連するputs
.
==
forステートメントも関連付けましたif
が、最初の行の結果のみが表示され、警告は表示されません。