Открытый файл, если не уже открытый с .sh сценарием

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

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

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

1
задан 10 June 2018 в 15:05

1 ответ

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


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

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

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

Теперь, если все сценарии, что "важный" доступ следует этой инструкции, Вас уверят, что самое большее один сценарий будет выполняться между lockfile и rm команды.

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

if [ -e important.lock ]; then
  # stuff to do if locked
else
  # stuff to do if not locked
fi
1
ответ дан 7 December 2019 в 15:18

Другие вопросы по тегам:

Похожие вопросы: