当我从打印彩色输出(例如ls
或gcc
)的终端执行命令时,将打印彩色输出。根据我的理解,该过程实际上是在输出ANSI 转义码,并且终端格式化颜色。
但是,如果我由另一个进程(比如自定义 C 应用程序)执行相同的命令并将输出重定向到应用程序自己的输出,这些颜色不会持续存在。
程序如何决定是否输出彩色格式的文本?是否有一些环境变量?
我正在尝试从终端或脚本设置窗口的活动。我知道您可以从系统设置中分配所有这些属性,但我需要通过脚本来完成。我知道您可以设置显示,env DISPLAY=:0 <command>
但将窗口分配给活动并打印其环境变量不会显示任何内容。我查看了qdbus
活动管理器和 kwin 的选项卡完整内容,但没有找到任何有关设置活动的信息。有谁知道如何做到这一点或者甚至可能吗?
所以我有两种语言文件,英语和法语。它们采用以下格式:
key=translation
Run Code Online (Sandbox Code Playgroud)
英语的一个例子是:
ui.title=My Title
Run Code Online (Sandbox Code Playgroud)
还有法语:
ui.title=Mon Titre
Run Code Online (Sandbox Code Playgroud)
所以我需要一个脚本来读取语言文件并找到差异。所以说英文文件有键:
ui.title=Title
ui.close=Close
Run Code Online (Sandbox Code Playgroud)
但法国人只有
ui.title=Mon Titre
Run Code Online (Sandbox Code Playgroud)
运行脚本后,它应该输出一个french.changes
包含ui.close=Close
. 这样,我就可以将文件发送给我的翻译人员,他们可以进行翻译。
当我取回它时,我可以简单地运行 catfrench.changes >> french; sort -o Language_fr_FR.properties
来合并更改。
我还需要一种按键而不是整行对语言文件进行排序的方法。
我查看了diff
但不确定如何正确使用它。我已经使用 Linux 有一段时间了,但在编写花哨的脚本时并没有那么快:)
谢谢你的帮助!