2014-11-12 2 views
1

나는 OpenWrt에서 사용하는 웹 인터페이스 인 LuCI를위한 작은 확장을 만들려고합니다. 그러나 질문은 매우 일반적이며 다른 어떤 것보다 루아와 더 관련이 있습니다. 나는 다음과 같은 코드를 한루아에서 실패한 문자열 비교

:

lo=lo?F lo=eth0?F lo=eth1?F lo=br-lan?F lo=wlan1?F lo=wlan0?F 

나는 어떤 짓을했는지 :

for k, v in ipairs(nixio.getifaddrs()) do 
    if v.family == "packet" then 
     s = s .. ifname .. "=" .. v.name .. '?' 
     if iface == v.name then 
      s = s .. "T\t" 
      match = 1 
      break 
     else 
      s = s .. "F\t" 
     end 
    end 
end 

내가 실행할 때마다 (ifname="lo"는하지만 어떤 실패)는 s 문자열로 인쇄됩니다 다음 디버깅하지만 여전히 문자열 비교가이 경우 작동하지 않는 이유를 볼 수 없습니다. 나는 루아의 전문가가 아니기 때문에 뭔가 명백한 것을 놓치고있는 경우일지도 모른다. 누구든지 그것이 무엇인지 볼 수 있었습니까? 당신은 비교 iface하지 ifname 사용하는

답변

1
s = s .. ifname .. "=" .. v.name .. '?' 
    if iface == v.name then 

. 이전에 변수에 값이 지정되어 있지 않으면 그 값은 nil이지만 합법적 인 Lua이므로 오류가 발생하지 않습니다.

+0

인정하기가 부끄럽지 만 나는이 비트를 잠시 보지 않고 성공하지 못했습니다. 바보 같은 실수를 지적 많은 감사합니다 :) – Diegomanas