วิธีเดียวที่ฉันสามารถนึกได้ไม่หรูหรามาก คุณสามารถให้สคริปต์ทำงานในพื้นหลังซึ่งนับจำนวนหน้าต่าง 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
หมายเหตุ:
สคริปต์นี้คือ
- ไม่หรูหรามันจะต้องเรียกใช้เป็นวงวนไม่สิ้นสุดในพื้นหลัง
- จำเป็นต้อง
xdotool
ติดตั้งด้วยsudo apt-get install xdotool
- ใช้งานไม่ได้กับแท็บหน้าต่างเท่านั้น