lua - 我的 if-then-else-end 语句在 Lua 中失败了;我该如何修复它?

标签 lua syntax-error awesome-wm

我正在尝试改进我的 rc.lua Awesome window manager 。默认的 rc.lua 使用以下代码设置菜单:

myawesomemenu = {
   { "manual", terminal .. " -e man awesome" },
   { "edit config", editor_cmd .. " " .. awesome.conffile },
   { "restart", awesome.restart },
   { "quit", awesome.quit }
}

我使用 Awesome 作为 GNOME 桌面环境的窗口管理器,因此我想让 Awesome 使用 gnome-session-quit 程序而不是 awesome.quit,但前提是环境变量“DE”设置为“gnome”。因此,我将第五行替换为

{ "quit", if os.getenv("DE") == "gnome" then os.execute("/usr/bin/gnome-session-quit") else awesome.quit end }

但是当我重新加载文件时,我得到“if 附近的意外符号”。我该如何解决这个问题,是什么原因导致的?

最佳答案

试试这个:

{ "quit", (os.getenv("DE") == "gnome") and function() os.execute("/usr/bin/gnome-session-quit") end or awesome.quit}

a and b or c 就像 C 表达式 a ? b : c,前提是 b 不为 false

关于lua - 我的 if-then-else-end 语句在 Lua 中失败了;我该如何修复它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17626855/

相关文章:

lua - 如何为 Lua 表添加前缀?

regex - Lex : Breaking up long regular expressions over multiple lines

awesome-wm - 以编程方式更改 awesomewm 主题

lua - Lua 中混合类型的相等运算符

lua - 如何在 Lua 中创建斐波那契数列?

lua - 从 Lua 表中删除特定条目

node.js - 键入 'npm run serve'时出现SyntaxError。错误是: Unexpected token, expected “,” (45:2). What am I doing wrong?

oracle - PL/SQL : ORA-00936: missing expression::Where Am I going wrong in the code?

ubuntu - 如何让很棒的 wm 看起来很棒?

screen - 在 Awesome WM 中打开事件/选定屏幕的程序