Я получил этот сценарий, который открывается .html
файл, но я хочу изменить его только на открытие его, если это еще не открыто.
Кто-либо знает некоторые строки, которые должны быть добавлены для достижения этого?
#!/bin/bash
fileFragment=$"*project/html/index.html"
fullPath=$(find ../ -path $fileFragment)
xdg-open $fullPath &
Править
Я хотел бы универсальное решение, которое является, почему я сохранил вопрос настолько простым, это не о браузерах, это о любом файле, я открыл использованиеxdg-open
, Я уже указал его путем обеспечения этого примера, я не хочу указывать его больше к определенным браузерам.
Но если нет никакого легкого универсального решения затем, у меня был бы ответ для моего конкретного случая, чем ни одного: Таким образом в моем случае я использую Firefox.
Следующее решение только работает на команды, которые продолжают бежать, пока Вы не закрываете программу/вкладку. К сожалению, это не имеет место для большинства программ GUI и
xdg-open
. В случае Firefox можно было получить список URL, в настоящее время открываемых иgrep
это, но это не a ни универсальное ни идеальное решение. Что касается тестирования, работает ли программа, посмотрите этот вопрос.
Можно использовать lockfile
от 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