我需要执行这个:
rm -rf ~/.wine-pipelight/*;
rm -rf ~/.wine-pipelight/./.*;
cp -a ~/viewright_backup/. ~/.wine-pipelight
每次 Firefox 窗口关闭时。但不一定在所有窗口关闭时,而是在每个关闭的窗口上。例如,如果我有一个 Firefox 窗口和一个 Firefox 弹出窗口。如果我关闭至少一个窗口,我想执行此命令。这可能吗?谢谢!
答案1
我能想到的唯一方法不太优雅。您可以在后台运行一个脚本,该脚本每秒计算打开的 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
到您的目录中,并将其添加到任何其他目录之前,因此运行将启动该脚本而不是正常的 Firefox 可执行文件。现在,由于脚本正在启动,这意味着您的正常 Firefox 将如您所愿出现,只是脚本也在运行。一旦您关闭 Firefox,脚本就会退出。$PATH
firefox
/usr/bin/firefox
免责声明:
这个脚本
- 不够优雅,需要在后台无限循环运行。
- 需要
xdotool
,使用以下方式安装sudo apt-get install xdotool
- 不适用于标签,仅适用于窗口。