Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash Shell脚本-Linux中最大化的桌面应用程序_Bash_Shell_Unix_Desktop Application - Fatal编程技术网

Bash Shell脚本-Linux中最大化的桌面应用程序

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

我是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 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”
应为。最好检查代码。