.sh 스크립트로 아직 열려 있지 않은 경우 파일을 엽니다.

.sh 스크립트로 아직 열려 있지 않은 경우 파일을 엽니다.

파일을 여는 스크립트가 있는데 .html파일이 아직 열려 있지 않은 경우에만 열도록 변경하고 싶습니다.
이를 달성하기 위해 추가해야 할 몇 줄을 아는 사람이 있습니까?

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

편집
나는 질문을 너무 단순하게 유지하는 일반적인 솔루션을 원합니다. 브라우저에 관한 것이 아니며 사용하여 연 모든 파일에 관한 것입니다. xdg-open이 예제를 제공하여 이미 지정했지만 더 이상 특정 항목에 지정하고 싶지 않습니다. 브라우저.
그러나 쉬운 일반적인 해결책이 없다면 없는 것보다 내 특정 사례에 대한 답변을 갖고 싶습니다. 따라서 제 경우에는 Firefox를 사용하고 있습니다.

답변1

다음 솔루션은 다음 명령에만 작동합니다.계속 달려프로그램/탭을 닫을 때까지. 불행하게도 대부분의 GUI 프로그램과 xdg-open. Firefox의 경우 다음과 같이 할 수 있습니다.현재 열려 있는 URL 목록을 가져옵니다.하지만 grep그것은 일반적이지도 이상적인 해결책도 아닙니다. 프로그램이 실행 중인지 테스트하려면 다음을 참조하세요.이 질문.


lockfile다음에서 사용할 수 있습니다.procmail패키지프로메일 설치. 처럼해당 man페이지귀하의 사용 사례와 정확히 일치하는 예가 있으므로 인용하겠습니다.

"important" 파일에 대한 액세스가 직렬화되어 있는지 확인하고 싶다고 가정해 보겠습니다. 즉, 해당 파일에 액세스하는 데 하나의 프로그램이나 쉘 스크립트만 허용되어야 합니다. 단순화를 위해 이것이 쉘 스크립트라고 가정해 봅시다. 이 경우 다음과 같이 해결할 수 있습니다.

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

lockfile이제 "중요"에 액세스하는 모든 스크립트가 이 지침을 따르면 및 명령 사이에 최대 하나의 스크립트가 실행된다는 것을 확신할 수 있습니다 rm.

기본적으로 다른 모든 스크립트는 파일이 다시 잠금 해제될 때까지 기다리며 기본적으로 8초마다 테스트합니다(예: lockfile -5 important.lock5초로 변경). 잠겨 있는지 확인하려면 다음 test명령을 사용하면 됩니다.

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

관련 정보