Abra o arquivo se ainda não estiver aberto com o script .sh

Abra o arquivo se ainda não estiver aberto com o script .sh

Eu tenho esse script que abre um .htmlarquivo, mas quero alterá-lo para abri-lo apenas se ainda não estiver aberto.
Alguém conhece algumas linhas que precisam ser adicionadas para conseguir isso?

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

EDIT
Eu gostaria de uma solução genérica por isso mantive a pergunta tão simples, não é sobre navegadores, é sobre qualquer arquivo que eu abri usando xdg-open, já especifiquei fornecendo este exemplo, não quero mais especificá-lo para específico navegadores.
Mas se não houver uma solução genérica fácil, prefiro ter uma resposta para o meu caso específico do que nenhuma: então, no meu caso, estou usando o Firefox.

Responder1

A solução a seguir funciona apenas para comandos quecontinue correndoaté você fechar o programa/guia. Infelizmente, esse não é o caso da maioria dos programas GUI e xdg-open. No caso do Firefox pode-seobter uma lista de URLs abertos atualmentee grepisso, mas essa não é uma solução genérica nem ideal. Quanto a testar se um programa está em execução, consulteessa questão.


Você pode usar lockfilea partir doprocmailpacoteInstalar procmail. Comosua manpáginacontém um exemplo que corresponde exatamente ao seu caso de uso, vou apenas citá-lo:

Suponha que você queira ter certeza de que o acesso ao arquivo "importante" seja serializado, ou seja, não mais do que um programa ou script de shell deve ter permissão para acessá-lo. Para simplificar, vamos supor que seja um script de shell. Neste caso você poderia resolver assim:

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

Agora se todos os scripts que acessam "importante" seguirem esta diretriz, você terá certeza de que no máximo um script estará sendo executado entre os comandos lockfilee .rm

Por padrão, todos os outros scripts aguardarão que o arquivo seja desbloqueado novamente, testando a cada oito segundos por padrão (altere, por exemplo, lockfile -5 important.lockpor cinco segundos). Se você quiser apenas verificar se está bloqueado, você pode usar o testcomando clássico:

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

informação relacionada