파일을 여는 스크립트가 있는데 .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.lock
5초로 변경). 잠겨 있는지 확인하려면 다음 test
명령을 사용하면 됩니다.
if [ -e important.lock ]; then
# stuff to do if locked
else
# stuff to do if not locked
fi