如何使用 Lua 脚本重新启动 Lua 程序

又是我

我正在尝试使用 Lua 制作一个终端程序,因为这是我最熟悉的语言。我正在制作一个计算器程序,我正在尝试让它能够在用户输入"exit"后重新启动并返回终端,但我不知道如何通过代码重置程序。如果有人能帮忙,那将不胜感激。

这是代码:

io.write("终端正在启动---完成!")
io.write("确保一切正常 --- 完成!")
cmd = io.read()
io.write(">")

if cmd == "" then
    io.write(">
")
end

if cmd == "cal"then
    io.write("计算器终端程序v1.0")
    io.write("什么操作?/n")
    op = io.read()

    if op == "exit"then
        io.write("退出")
    end
end
点赞
用户4984564
用户4984564

你可能想要使用 os.exit(),它会终止整个程序。

2020-11-19 15:19:58
用户5075715
用户5075715

直接回答你的问题,我认为“重新启动程序”是不可能的。然而,通过利用循环,你可以达到相同的结果。

例如,这段代码可能能实现你想要的功能:

print('终端正在启动-- 完成!')
print('确保一切工作正常 - 完成!')

repeat
    io.write('>')
    cmd = io.read()

    if cmd == 'cal' then
        print('计算器终端程序 v1.0')
        repeat
            io.write('输入操作: ')
            op = io.read()
        until op == 'exit'
        print('正在退出')
    elseif cmd == 'command' then
        --另一条命令
    else
        print('未知命令。')
    end

until cmd == 'exit'

其他提示:

  • 为了提高可读性,你应该利用 elseif 而不是编写多个单独的 if 语句。
  • 考虑在写完某些文字后使用 print 函数来实现新行以获得更好的终端体验。你也可以使用 io.write('\n')
2020-11-20 05:19:15