0

我有 2 个 linux gnome 命令,我想合并为一个。

一个是给我标题:

gdbus call -e -d org.gnome.Shell -o /org/gnome/Shell -m org.gnome.Shell.Eval global.get_window_actors\(\)[`gdbus call -e -d org.gnome.Shell -o /org/gnome/Shell -m org.gnome.Shell.Eval global.get_window_actors\(\).findIndex\(a\=\>a.meta_window.has_focus\(\)===true\) | cut -d"'" -f 2`].get_meta_window\(\).get_title\(\) | cut -d'"' -f 2

当另一个给我程序名称时:

gdbus call -e -d org.gnome.Shell -o /org/gnome/Shell -m org.gnome.Shell.Eval global.get_window_actors\(\)[`gdbus call -e -d org.gnome.Shell -o /org/gnome/Shell -m org.gnome.Shell.Eval global.get_window_actors\(\).findIndex\(a\=\>a.meta_window.has_focus\(\)===true\) | cut -d"'" -f 2`].get_meta_window\(\).get_wm_class\(\) | cut -d'"' -f 2

现在调用几乎相同,但我无法一次检索两个参数。如何在一个通话中get_meta_window同时使用?get_title

4

1 回答 1

0

在 bash 中,您可以使用{ list; }where list is a list of commands 组合两个命令。

例子:

{ echo foo; echo bar; }
foo
bar

然后,您可以按照您喜欢的任何方式过滤您的串联输出:

示例 2:(将换行符更改为星号)

{ echo foo; echo bar ; } | tr “\n” “*“
foo*bar*

注意:间距很重要。在开始 { 和结束 } 之前有一个空格。

于 2021-11-04T00:07:26.160 回答