我在安装执行的 Ubuntu 19.10 后发现了这个 im-launch 启动条目
sh -c 'if ! [ -e "/usr/bin/ibus-daemon" ] && [ "x$XDG_SESSION_TYPE" = "xwayland" ] ; then exec env IM_CONFIG_CHECK_ENV=1 im-launch true; fi'
我想知道这个条目的目的,如果我禁用它会发生什么?
我在安装执行的 Ubuntu 19.10 后发现了这个 im-launch 启动条目
sh -c 'if ! [ -e "/usr/bin/ibus-daemon" ] && [ "x$XDG_SESSION_TYPE" = "xwayland" ] ; then exec env IM_CONFIG_CHECK_ENV=1 im-launch true; fi'
我想知道这个条目的目的,如果我禁用它会发生什么?
-e
检查文件是否/usr/bin/ibus-daemon
存在?存在意味着真 不存在意味着假。!
想要确认上面的值是假的,如果上面的值是真的,它不会执行任何东西。[ "x$XDG_SESSION_TYPE" = "xwayland" ]
根据您在登录屏幕上选择登录的方式,这可以具有以下任一值。您将选择 x11 或 wayland 哪个会话。"xx11" = "xwayland" "xwayland" = "xwayland"
$XDG_SESSION_TYPE 的示例输出
另一个例子:
如果第一个表达式为假并且 x$XDG_SESSION_TYPE = xwayland 则执行命令
env IM_CONFIG_CHECK_ENV=1 im-launch true
如果第一个表达式为真或 x$XDG_SESSION_TYPE 不等于 xwayland 则不做任何事情。
看
man test
和
你可以阅读更多关于这个命令的作用
then exec env IM_CONFIG_CHECK_ENV=1 im-launch true;
见
man env
人im-launch
默认情况下在 Ubuntu 19.10 中
/usr/bin/ibus-daemon
存在。所以命令不会被执行。当有文件
/usr/bin/ibus-daemon
并且我的会话是x11
这里有一些关于 IM
当没有文件
/usr/bin/ibus-daemon
并且我的会话是wayland
这是与上面不同的东西,这意味着应用了env,然后发生了连锁反应。
因此,如果您从启动列表中禁用或启用此功能,除非此文件不存在
/usr/bin/ibus-daemon
并且您的会话wayland
满足条件,否则不会发生任何事情。我正在研究如何配置 Ubuntu 以使其性能更高,并最终来到这里,这很有趣。
我的
im-launch
启动条目:@UnKNOWn 详细说明了答案,但 @foobar 的评论是我的情况,所以我进行了深入研究。
分解命令:
sh
是一个命令语言解释器,它执行从命令行字符串、标准输入或指定文件读取的命令。exec
Linux 中的 command 用于从 bash 本身执行命令。if CONDITION true THEN execute COMMAND
im-launch
命令用于启动输入法框架服务器守护程序,例如 ibus-daemon,为客户端程序设置适当的环境变量,并执行 SESSION-PROGRAM,例如 x-session-manager。ibus-daemon
是 ibus 的守护程序,也是用户启动 ibus 守护程序、引擎和面板的启动程序。daemon
是作为后台进程运行的计算机程序,而不是在交互式用户的直接控制下。ibus
是一种智能输入总线。bus
只是一组连接多个模块(处理器、内存、IO 设备)的电线。这
exec
然后我的问题是,
exec env
当我们已经从sh
.该
exec
命令用指定的命令替换当前的 shell 进程。通常,当您运行命令时会生成(分叉)新进程,exec 命令不会生成新进程。相反,当前进程被新命令覆盖。换句话说,exec 命令代替当前 shell 执行,而不创建新进程。使用
env
- 如果您想在执行主程序之前修改程序的环境,您通常会编写一个脚本并在其结束时启动主程序。但是那时脚本没有必要留在内存中。因此,在这些情况下使用 exec 以便主程序可以替换母脚本。我在我的 im-launch 启动项中添加了以下注释:“检查显示服务器类型、x11 或 wayland”
我只有一件事要补充,@UnKNOWn 和他的评论暗示了这一点。
IM-Launch可能意味着输入法。比如维基百科上提到的那个
这也支持 Anit 的回答,他提到 ibus 未来的读者可以在 wiki 上找到
简单来说,这似乎是一种检查要使用哪种键盘布局/语言的方法..但我不会引用我的话...从谷歌搜索来看,微软对这个主题有很多话要说。
只是认为'IM'位是半重要的,上面的答案对我来说并不清楚..