bash脚本在显示图像时失去焦点

时间:2014-06-20 12:19:29

标签: linux bash shell focus

我试图找出如何在显示图像的同时不在shell脚本中失去焦点。用户输入可能随时出现,但看到拍摄的照片似乎很重要。

要澄清,我输出图像没有问题。显示工作正常,动画,和feh等。我需要的是,shellcript仍然处理用户输入(在此示例中,“t”),同时显示最后拍摄的图像,时间不确定。

我在Linux中用bash写作。

以下是我正在尝试的一个例子:

#!/bin/bash

i=0

capture() {
    cd ~/Desktop/ani
    streamer -c /dev/video0 -s 800x600 -o outfile$i.jpeg
    display outfile$i.jpeg &
    let i++
}   

while true; do
    #clear
    read -rsn1 input

    if [ "$input" = "t" ]; then
           capture
    else
        exit
    fi
done

在实际的脚本中,我可能会继续拍照,所以我想继续收听用户输入。我可以想象有几种方法可以做到这一点,但我无法弄明白。

2 个答案:

答案 0 :(得分:2)

继续收听用户输入。你可以这样做

while true; do
#clear
    read -p "Your input: " input

    if [ "$input" == "t" ]; then
           capture
    fi

done

答案 1 :(得分:0)

解决此问题的一种相当丑陋的方法:安装实用程序wmctrl(在debian / Ubuntu中,sudo apt-get install wmctrl)。然后,在display命令后,添加:

sleep 1
wmctrl -i -a "$WINDOWID"

这将睡眠一秒钟(留出一些时间到display命令完成加载 - 将此值调整到适合你的任何东西)。然后,wmctrl将使用变量WINDOWID的值(希望由终端模拟器设置)作为数值(-i)并提升窗口并使其成为焦点({ {1}})。