Firefox每次关闭时如何执行终端命令


8

我需要执行以下操作:

rm -rf ~/.wine-pipelight/*;
rm -rf ~/.wine-pipelight/./.*;
cp -a ~/viewright_backup/. ~/.wine-pipelight

每次Firefox窗口关闭时。但不一定所有窗口都关闭时,而是在所有关闭的窗口上时。例如,如果我有一个Firefox窗口和一个Firefox弹出窗口。如果关闭至少一个窗口,则要执行此命令。这可能吗?谢谢!


1
为什么要这样做?解决问题的方法可能比使用这种解决方法更容易。您使用哪个Pipelight和Wine-compholio版本?
MichaelMüller2014年

我遵循了教程。它使用塞尔维亚语,但说明中使用了代码。
Dusan Milosevic 2014年

它是塞尔维亚宽带公司的一项服务,Linux上官方不支持该服务。
Dusan Milosevic'7

Answers:


11

我能想到的唯一方法不是很优雅。您可以在后台运行脚本,该脚本每秒统计打开的Firefox窗口的数量,并在该数字更改时启动您的命令。就像是:

#!/usr/bin/env bash


## Run firefox
/usr/bin/firefox &

## Initialize the variable to 100
last=100;

## Start infinite loop, it will run while there
## is a running firefox instance.
while pgrep firefox >/dev/null;
do
    ## Get the number of firefox windows    
    num=$(xdotool search --name firefox | wc -l)

    ## If this number is less than it was, launch your commands
    if [ "$num" -lt "$last" ]
    then
        rm -rf ~/.wine-pipelight/*;
        ## I included this since you had it in your post but it
        ## does exactly the same as the command above.
        rm -rf ~/.wine-pipelight/./.*;
        cp -a ~/viewright_backup/. ~/.wine-pipelight      
    fi

    ## Save the number of windows as $last for next time
    last=$num

    ## Wait for a second so as not to spam your CPU.
    ## Depending on your use, you might want to make it wait a bit longer,
    ## the longer you wait, the lighter the load on your machine
    sleep 1

done

将上面的脚本另存为firefox,放在您的~/bin目录中并使其可执行chmod a+x ~/bin/firefox。由于Ubuntu 默认情况下会添加~/bin到您$PATH的目录中,并将其添加到任何其他目录之前,因此运行firefox将启动该脚本,而不是普通的firefox可执行文件。现在,因为脚本正在启动/usr/bin/firefox,这意味着正常的Firefox将按照您的期望出现,并且只在脚本也运行的情况下出现。关闭Firefox后,脚本将立即退出。

免责声明:

这个脚本是

  1. 它不够优雅,需要在后台无限循环地运行。
  2. 需要xdotool安装sudo apt-get install xdotool
  3. 不适用于标签,仅适用于窗口。

不错的解决方法
kenn 2014年

谢谢!我不会让它自动启动,而是让它在firefox启动时启动。非常感谢您,我会尝试的。
Dusan Milosevic

@terdon由于我打算在启动Firefox时启动它,因此有可能在关闭Firefox时使其停止。也许是这样的:while ["0" -lt "$(xdotool search --name firefox | wc -l)" ]。我不知道sintax是否正确,但是您明白了……您可以重写它以满足这个条件吗?谢谢!
Dusan Milosevic

@DusanMilosevic查看最新答案。我重写了它,以便脚本本身启动firefox并仅在至少运行一个firefox实例的情况下运行。
terdon
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.