Abra el archivo si aún no está abierto con el script .sh

Abra el archivo si aún no está abierto con el script .sh

Obtuve este script que abre un .htmlarchivo, pero quiero cambiarlo para abrirlo solo si aún no está abierto.
¿Alguien sabe algunas líneas que deben agregarse para lograr esto?

#!/bin/bash
fileFragment=$"*project/html/index.html"
fullPath=$(find ../ -path $fileFragment)
xdg-open $fullPath &

EDITAR
Me gustaría una solución genérica, por eso mantuve la pregunta tan simple, no se trata de navegadores, se trata de cualquier archivo que abrí usando xdg-open, ya lo especifiqué al proporcionar este ejemplo, no quiero especificarlo más en detalles específicos. navegadores.
Pero si no existe una solución genérica fácil, prefiero tener una respuesta para mi caso específico que ninguna: entonces, en mi caso, estoy usando Firefox.

Respuesta1

La siguiente solución solo funciona para comandos quesigue corriendohasta cerrar el programa/pestaña. Lamentablemente, ese no es el caso de la mayoría de los programas GUI y xdg-open. En el caso de Firefox se podríaobtener una lista de URL abiertas actualmentey grepeso, pero esa no es una solución genérica ni ideal. En cuanto a probar si un programa se está ejecutando, consulteesta pregunta.


Puedes utilizar lockfiledesde elprocmailpaqueteinstalar procmail. Comosu manpaginatiene un ejemplo que coincide exactamente con su caso de uso, solo lo citaré:

Supongamos que desea asegurarse de que el acceso al archivo "importante" esté serializado, es decir, no se debe permitir el acceso a más de un programa o script de shell. En aras de la simplicidad, supongamos que se trata de un script de shell. En este caso podrías resolverlo así:

...
lockfile important.lock
...             
access_"important"_to_your_hearts_content
...
rm -f important.lock
...

Ahora, si todos los scripts que acceden a "importantes" siguen esta guía, tendrá la seguridad de que como máximo se ejecutará un script entre los comandos lockfiley rm.

De forma predeterminada, cada dos scripts esperarán a que el archivo se desbloquee nuevamente, probándose cada ocho segundos de manera predeterminada (cambie con, por ejemplo, lockfile -5 important.lockdurante cinco segundos). Si solo quieres comprobar si está bloqueado, puedes usar el testcomando clásico:

if [ -e important.lock ]; then
  # stuff to do if locked
else
  # stuff to do if not locked
fi

información relacionada