Um einen Befehl zu erstellen, idder das letzte Fenster findet, das von erstellt wurde Firefox(und um es zu schließen), müssen Sie wmctrlinstalliert sein:
sudo apt-get install wmctrl
Der Befehl
Verwenden Sie dann den Befehl:
wmctrl -ic "$(wmctrl -l | grep 'Mozilla Firefox' | tail -1 | awk '{ print $1 }')"
Erläuterung:
wmctrl -l
listet alle Fenster auf, aber eine wichtige Eigenschaft des Befehls ist, dass die Fenster in der Reihenfolge aufgelistet werden, in der sie erstellt wurden .
Deshalb:
wmctrl -l | grep 'Mozilla Firefox' | tail -1 | awk '{ print $1 }'
werden:
Alle Fenster auflisten:
wmctrl -l
Finden Sie diejenigen (die Zeilen) mit 'Mozilla Firefox' in ihrem Namen:
grep 'Mozilla Firefox'
finde den letzten (der auch der zuletzt erstellte ist):
tail -1
Extrahieren Sie die erste Zeichenfolge in der Zeile (dies ist die Fenster-ID):
awk '{ print $1 }'
Der Befehl:
wmctrl -ic
beendet dann das neueste Firefox-Fenster anhand seiner ID (anmutig).
Oder noch zuverlässiger:
Während der obige Befehl in praktisch allen Fällen gut funktioniert, besteht eine geringe Wahrscheinlichkeit von Namenskonflikten, wenn z. B. ein anderes Fenster mit dem Namen "Mozilla Firefox" vorhanden ist, jedoch kein Fenster von Firefox(unwahrscheinlich, aber immer noch).
Was "wasserdicht" funktionieren sollte, ist daher, die Fenster in der Fensterliste (mit wmctrl -lp) anhand der PID von firefoxanstelle der Zeichenfolge im Fensternamen zu identifizieren :
wmctrl -ic "$(wmctrl -lp | grep "$(pgrep firefox)" | tail -1 | awk '{ print $1 }')"
Wie Sie in diesem Befehl sehen können,
wmctrl -l | grep 'Mozilla Firefox'
Das Produzieren der Zeilen mit 'Mozilla Firefox' wird ersetzt durch:
wmctrl -lp | grep "$(pgrep firefox)"
Erzeugen der Linien, die die PID von Firefox enthalten (als Ausgabe von pgrep firefox)