Открыть файл, если он еще не открыт, с помощью скрипта .sh

Открыть файл, если он еще не открыт, с помощью скрипта .sh

У меня есть этот скрипт, который открывает .htmlфайл, но я хочу изменить его так, чтобы он открывался только если он еще не открыт.
Кто-нибудь знает какие-нибудь строки, которые нужно добавить, чтобы добиться этого?

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

EDIT
Я хотел бы получить общее решение, поэтому я и оставил вопрос таким простым, это не о браузерах, это о любом файле, который я открываю с помощью xdg-open, я уже указал это, предоставив этот пример, я больше не хочу указывать это для конкретных браузеров.
Но если нет простого общего решения, то я бы предпочел получить ответ для моего конкретного случая, чем вообще никакого: Так что в моем случае я использую Firefox.

решение1

Следующее решение работает только для команд, которыепродолжать работатьпока вы не закроете программу/вкладку. К сожалению, это не относится к большинству программ с графическим интерфейсом и xdg-open. В случае Firefox можно было быполучить список открытых в данный момент URL-адресови grepэто, но это не универсальное и не идеальное решение. Что касается проверки того, запущена ли программа, см.этот вопрос.


Вы можете использовать lockfileизprocmailупаковкаУстановить procmail. Какего manстраницасодержит пример, точно соответствующий вашему варианту использования, я просто процитирую его:

Предположим, вы хотите убедиться, что доступ к файлу "important" является сериализованным, т. е. не более чем одной программе или скрипту оболочки должен быть разрешен доступ к нему. Для простоты предположим, что это скрипт оболочки. В этом случае вы можете решить это так:

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

Теперь, если все скрипты, которые обращаются к «важному», следуют этому правилу, вы можете быть уверены, что между командами lockfileи будет выполняться не более одного скрипта rm.

По умолчанию, каждый другой скрипт будет ждать, пока файл снова не будет разблокирован, проверяя каждые восемь секунд по умолчанию (измените на eg lockfile -5 important.lockна пять секунд). Если вы просто хотите проверить, заблокирован ли он, вы можете использовать классическую testкоманду:

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

Связанный контент