了解修复 LibreOffice 的 Linux 命令语法

Posted

技术标签:

【中文标题】了解修复 LibreOffice 的 Linux 命令语法【英文标题】:Understanding a Linux Command Syntax that Fixed LibreOffice 【发布时间】:2020-06-20 05:45:00 【问题描述】:

问候并原谅冗长的标题,

前言:我解决了一个问题,下载 LibreOffice 后,启动画面会出现,但之后什么都不会发生

以下是解决我的问题的解决方案: 第 1 步。SAL_DISABLE_OPENCL=1 soffice 步骤 2. libre office 应该打开 - 打开工具 -> 选项 -> LibreOffice -> OpenCL 并禁用选项“允许使用 OpenCL”

话虽如此,我正试图了解第 1 步中发生的情况。在我看来,我们正在通过 soffice 命令打开一个子shell,其中变量 SAL_DISABLE_OPENCL 在所述子shell 的上下文中发生了更改

我以前从未见过或读过这方面的内容,因此放弃了尝试用谷歌搜索正确的字符串。这个概念有名字吗?我试过soffice --help,但没有任何迹象表明这种语法

非常感谢任何帮助,谢谢!

【问题讨论】:

这不是LibreOffice特有的。它是用于设置环境变量的 shell 语法。 非常感谢您的回复!请允许我澄清一下:如果我要创建一个像这样的变量...HELLO="hi"...然后运行一个 cmd,(对我来说)与上面第 1 步中的 SAL_DISABLE..cmd 相同...@987654326 @ ...对我来说,如果我的示例与上面的 LibreOffice 修复相同,则子 shell 中的输出应该将 HELLO 的值更改为 hello 但是,它仍然是 hi - 与原始声明保持不变这就是我的困惑再次感谢! 在您的示例中,HELLO 在运行子进程之前由 current shell 扩展。所以它变成了HELLO="hello" ls; echo hi。要进行等效测试,您需要一个程序来读取其代码中的 HELLO 变量。 再次感谢!我还没有真正理解它,但我认为这与我仍然是 Linux 的新手有关。尽管如此,非常感谢您的帮助 【参考方案1】:

运行SAL_DISABLE_OPENCL=1 soffice 运行程序soffice,将环境变量SAL_DISABLE_OPENCL 设置为值1。它不运行子外壳,它在您当前的外壳上运行。这个语法是described in the bash manual:

任何简单命令或函数的环境都可以通过在其前面加上参数分配来临时增强,如外壳参数中所述。这些赋值语句只影响该命令看到的环境。

该环境变量是 LibreOffice 特殊处理的值,用于强制禁用该选项。

【讨论】:

这太棒了!这完美地解释了它,我什至不知道有一个 bash 手册。在接下来的几天里,你会为此倾倒,你太棒了 如果您不知道它们的存在,有时很难找到 GNU 手册。它们也应该可以通过运行info bash 在Linux 系统中使用,但老实说,我从来没有费心学习使用info。当我知道自己在寻找什么时,我喜欢做的一件事是打开 single-page manual 并按 ctrl+f 来获取我想了解更多信息的术语(实际上我是如何在答案中找到该部分的!)跨度> 如果你能接受这个答案,那就太好了:)

以上是关于了解修复 LibreOffice 的 Linux 命令语法的主要内容,如果未能解决你的问题,请参考以下文章

linux下使用libreoffice将Office文档转PDF

使用ROOT用户在Linux服务器上安装Libreoffice服务后,普通用户无法调用Libreoffice API

Python3 - Linux 下安装 LibreOffice 以及使用

Python3 - Linux 下安装 LibreOffice 以及使用

Python3 - Linux 下安装 LibreOffice 以及使用

Python3 - Linux 下安装 LibreOffice 以及使用