Bash Shell脚本-Linux中最大化的桌面应用程序
我是Unix环境或桌面应用程序的初学者。 我的应用程序正在运行,我可以使用此Bash Shell脚本-Linux中最大化的桌面应用程序,bash,shell,unix,desktop-application,Bash,Shell,Unix,Desktop Application,我是Unix环境或桌面应用程序的初学者。 我的应用程序正在运行,我可以使用此pgrep获取其pid。我们可以最大化这个应用程序,还是使用shell脚本激活它的窗口 提前谢谢 wmctrl就是这样做的: #!/bin/bash pid=1234 # Note that one PID may have several windows opened, possibly # with the same title, so you may have to implement # some add
pgrep
获取其pid。我们可以最大化这个应用程序,还是使用shell脚本激活它的窗口
提前谢谢
wmctrl
就是这样做的:
#!/bin/bash
pid=1234
# Note that one PID may have several windows opened, possibly
# with the same title, so you may have to implement
# some additional logic in order to choose the correct one.
window_refs=$(wmctrl -p -l | grep " $pid " | egrep -o 0x[0-9a-z]+)
for ref in $window_refs; do
wmctrl -i -r "$ref" -b "add,maximized_vert,maximized_horz"
done
您应该对变量进行双引号引用,以防止全局搜索和分词。还可以考虑使用<代码> $(..)>代码>代替传统的回退。这是第一次正常工作。当我最小化窗口并再次运行脚本时,它不会显示。我收到一条消息,
无法将参数转换为数字。
。请解释它是什么意思grep“$pid”
@user3439894:似乎$window\u refs不应该被双引号引用,因为这样它就被视为一个字符串,打破了循环。再次删除引号。@Vish:现在应该可以了,请重试。该命令首先列出所有活动窗口以及相应的PID,然后仅过滤出相关的窗口,最后创建一个实际用于操作窗口的窗口引用列表。@Vadim Landa,是的,一些变量不应根据使用的位置/方式双引号引起,如本例中的for。。在$..
中,但是-r“$ref”
应为。最好检查代码。