如何在 bash 脚本中使用 xdotool 正确检测 window
How to correctly detect window with xdotool in bash script
我正在尝试录制屏幕以及从我的网络摄像头输入的内容。要显示来自网络摄像头的图像,我使用 ffplay。但是我希望将它放置在屏幕的特定位置。为此,我使用 xdotool 并遵循 bash 脚本:
#!/bin/bash
ffplay -i /dev/video0 &
res=$!
echo $res
window_pid=$(xdotool search --pid $res)
echo $window_pid
xdotool windowmove $window_pid 1200 200
wait
出于某种原因,我获得了正确的进程 ID res
,但 window_pid
没有。如果我在终端中 运行 类似的命令它工作正常(我在一个终端实例中 运行 ffplay 和另一个中的其余命令)。我在这里错过了什么?
你可以试试这个:
#!/bin/bash
ffplay -i /dev/video0 &
res=$!
echo $res
until window_pid=$(xdotool search --pid $res); test -n "$window_pid"; do
sleep .1
done
echo $window_pid
xdotool windowmove $window_pid 1200 200
wait
我正在尝试录制屏幕以及从我的网络摄像头输入的内容。要显示来自网络摄像头的图像,我使用 ffplay。但是我希望将它放置在屏幕的特定位置。为此,我使用 xdotool 并遵循 bash 脚本:
#!/bin/bash
ffplay -i /dev/video0 &
res=$!
echo $res
window_pid=$(xdotool search --pid $res)
echo $window_pid
xdotool windowmove $window_pid 1200 200
wait
出于某种原因,我获得了正确的进程 ID res
,但 window_pid
没有。如果我在终端中 运行 类似的命令它工作正常(我在一个终端实例中 运行 ffplay 和另一个中的其余命令)。我在这里错过了什么?
你可以试试这个:
#!/bin/bash
ffplay -i /dev/video0 &
res=$!
echo $res
until window_pid=$(xdotool search --pid $res); test -n "$window_pid"; do
sleep .1
done
echo $window_pid
xdotool windowmove $window_pid 1200 200
wait