Lua脚本 - 使用Telegram与树莓派进行通信。在某些情况下,elseif和else语句会错误地命中else

我正在扩展以下示例,以使用Telegram与我的树莓派通信:

http://www.instructables.com/id/Raspberry-remote-control-with-Telegram/

我使用以下代码:

#!/usr/local/bin/lua
function on_msg_receive (msg)
    if msg.out then
        return
    end
    if (msg.text=='Ping') then
        send_msg (msg.from.print_name, 'pong', ok_cb, false)
    elseif (msg.text=='Photo') then
        os.execute[["scriptToTakePhoto]]
        send_photo (msg.from.print_name, '/pathToPhoto.jpg', ok_cb, false)
        send_msg (msg.from.print_name, '这是你要的!', ok_cb, false)
    elseif (msg.text=='Hello'or msg.text =='Hi') then
        send_msg (msg.from.print_name, '你好,我能帮你什么吗?', ok_cb, false)
    else
        math.randomseed(os.time())
        randNum = math.random(0,5)
        if randNum == 0 then
            messageText = "随机文本"
        elseif randNum == 1 then
            messageText = "随机文本"
        elseif randNum == 2 then
            messageText = "随机文本"
        elseif randNum == 3 then
            messageText = "随机文本"
        elseif randNum == 4 then
            messageText = "随机文本"
        elseif randNum == 5 then
            messageText = "随机文本"
        end
        send_msg (msg.from.print_name, messageText, ok_cb, false)
    end
end

我得到以下输出:

Ping->Pong

Hi->你好,我能帮你什么吗?

Hello->你好,我能帮你什么吗?

[其他]->随机文本

Photo->这是你要的! [已接收到照片] 随机文本

因此,当我发送任何if / ifelse中的消息(除了Photo),最后一个else都不会被触发。当我发送'Photo'时,它会进入该ifelse和最后一个else。无法弄清楚为什么。

点赞