파이어 폭스 창이 닫힐 때마다 터미널 명령을 실행하는 방법


8

이것을 실행해야합니다 :

rm -rf ~/.wine-pipelight/*;
rm -rf ~/.wine-pipelight/./.*;
cp -a ~/viewright_backup/. ~/.wine-pipelight

Firefox 창이 닫힐 때마다. 그러나 반드시 모든 창이 닫힐 때가 아니라 닫힌 모든 창에 있어야합니다. 예를 들어, 하나의 Firefox 창과 하나의 Firefox 팝업 창이있는 경우. 하나 이상의 창을 닫으면이 명령을 실행하고 싶습니다. 이것이 가능한가? 감사!


1
왜 이러고 싶니? 이러한 해결 방법을 사용하는 것보다 문제를 해결하는 것이 가장 쉬울 것입니다. 어떤 Pipelight 및 wine-compholio 버전을 사용하십니까?
Michael Müller

나는 명언을 따랐다. 세르비아어이지만 설명에 사용되는 코드가 있습니다.
두산 Milosevic

그것은 리눅스에서 공식적으로 지원되지 않는 세르비아 광대역 회사의 하나의 서비스입니다.
두산 Milosevic

답변:


11

내가 생각할 수있는 유일한 방법은 매우 우아하지 않습니다. 매 초마다 열려있는 파이어 폭스 창 수를 계산하고 해당 숫자가 변경되면 명령을 실행하는 스크립트를 백그라운드에서 실행할 수 있습니다. 다음과 같은 것 :

#!/usr/bin/env bash


## Run firefox
/usr/bin/firefox &

## Initialize the variable to 100
last=100;

## Start infinite loop, it will run while there
## is a running firefox instance.
while pgrep firefox >/dev/null;
do
    ## Get the number of firefox windows    
    num=$(xdotool search --name firefox | wc -l)

    ## If this number is less than it was, launch your commands
    if [ "$num" -lt "$last" ]
    then
        rm -rf ~/.wine-pipelight/*;
        ## I included this since you had it in your post but it
        ## does exactly the same as the command above.
        rm -rf ~/.wine-pipelight/./.*;
        cp -a ~/viewright_backup/. ~/.wine-pipelight      
    fi

    ## Save the number of windows as $last for next time
    last=$num

    ## Wait for a second so as not to spam your CPU.
    ## Depending on your use, you might want to make it wait a bit longer,
    ## the longer you wait, the lighter the load on your machine
    sleep 1

done

위와 같이 스크립트를 저장하고 디렉토리에 firefox넣고 ~/bin실행 가능하게하십시오 chmod a+x ~/bin/firefox. 우분투는 기본적 ~/bin으로 사용자 $PATH를 추가하고 다른 디렉토리 앞에 추가하기 때문에 실행 firefox하면 일반적인 파이어 폭스 실행 파일 대신 해당 스크립트가 시작됩니다. 이제 스크립트가 실행 중이므로 이는 /usr/bin/firefox예상대로 스크립트가 실행중인 경우에만 일반적인 파이어 폭스가 표시됨을 의미합니다. 파이어 폭스를 닫 자마자 스크립트가 종료됩니다.

기권:

이 스크립트는

  1. 우아하지는 않지만 백그라운드에서 무한 루프로 실행해야합니다.
  2. 필요합니다 xdotool.sudo apt-get install xdotool
  3. 탭에는 작동하지 않으며 창에만 작동합니다.

좋은 해결 방법
kenn

감사! 자동 시작하지는 않지만 firefox가 시작될 때 시작하도록합니다. 정말 고마워요, 시도하겠습니다.
두산 Milosevic

@terdon 파이어 폭스가 시작될 때 시작하도록 계획하고 있기 때문에 파이어 폭스가 닫힐 때 중단시킬 수 있습니까? 어쩌면 다음과 같습니다 while ["0" -lt "$(xdotool search --name firefox | wc -l)" ].. sintax가 옳은지 모르겠지만 요점을 알 수 있습니다 ...이 조건에 맞게 다시 작성할 수 있습니까? 감사!
두산 Milosevic

@DusanMilosevic 업데이트 된 답변을 참조하십시오. 스크립트 자체가 firefox를 시작하고 하나 이상의 firefox 인스턴스가 실행되는 동안에 만 실행되도록 다시 작성했습니다.
terdon
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.