특정 PID에 대해 추가 명령 실행

특정 PID에 대해 추가 명령 실행

저는 Linux를 처음 접하는 사람이므로, 이것이 터무니없는 질문처럼 보이더라도 양해해 주시기 바랍니다.

터미널의 URL 없이 Firefox에서 새 탭을 열려고 합니다. 그래서 내 명령은 다음과 같습니다

$ firefox -new-tab -search foo1

이제 이 작업을 다시 시도하고 새 탭을 열어 새 항목을 검색하려고 하면 다음과 같이 표시됩니다.

$ firefox -new-tab -search foo2

새 창이 열립니다. 그래서 이전 브라우저의 PID를 얻을 수 있다면 해당 PID에서 새 탭 명령을 실행하여 새 탭이 실제로 동일한 창에서 열릴 수 있다는 생각이 들었습니다. 다음 명령을 실행하면 비교적 쉽게 PID를 얻을 수 있습니다.

$ firefox -new-tab -search foo1 </dev/null >/dev/null 2>&1 &

그러나 실제로 나는 PID를 사용하여 해당 PID에 대한 새 명령을 실행하는 방법을 전혀 모릅니다.

모든 의견을 환영합니다. 감사해요!

답변1

그럼에도 불구하고, 상호 작용하는 Firefox 브라우저는 표시되는 창 수에 관계없이 단지 "기본" PID일 뿐입니다(실제 웹 사이트 작업자는 자체 프로세스에서 실행되며 잘 정의된 인터페이스 통신을 통해 기본 프로세스와 통신합니다). . "창"과 "PID" 사이에는 일대일 대응이 없습니다.

따라서 불행하게도 Firefox 명령줄 오류 수정( --search항상 새 창 열기)은 생각한 대로 작동하지 않습니다.

이에 대해 생각해 보았지만 불행하게도 브라우저 확장 프로그램을 작성하거나 다른 프로그램에서 브라우저를 감지하지 않고 Firefox에 새 탭을 열고 기본 검색 엔진에서 쿼리를 수행하도록 지시할 수 있는 방법이 없습니다.

그래서 제가 드릴 수 있는 최선의 방법은 다음과 같습니다.

  1. 원하는 검색 엔진을 선택하고 쿼리 URL을 기록해 두십시오. (가장 쉬운 방법은 "qwert"와 같은 임의의 문자열을 검색한 다음 정신적으로 이를 다음과 같은 자리 표시자로 바꾸는 것입니다 https://duckduckgo.com/?q=qwert.https://duckduckgo.com/?q=<placeholder>
  2. 이 URL을 다음과 함께 사용하세요 --new-tab.
searchword="strange women lying in ponds distributing swords"
encoded="$(perl -MURI::Escape -e 'print uri_escape($ARGV[0]);' "${searchword}")"
firefox --new-tab "https://duckduckgo.com/?q=${encoded}"

분명히 오리의 무게를 측정하는 방법은 여러 가지가 있습니다. 저는 firefox --new-tab "$(trurl --url 'https://duckduckgo.com/' --append "query=q=${searchword}")"Perl 호출을 사용하고 싶지만 trurl아직 많은 Linux 배포판에서는 사용할 수 없습니다.

어쨌든, 당신이 무엇을 하든, 이것은 잘 작동하지 않습니다. 더 잘 작동하게 하려면 이를 "websearch"라는 텍스트 파일에 넣어야 합니다.

#!/bin/bash
searchwords="$@"
encoded="$(perl -MURI::Escape -e 'print uri_escape($ARGV[0]);' "${searchwords}")"
firefox --new-tab "https://duckduckgo.com/?q=${encoded}"

bin/홈 디렉토리의 디렉토리에 있다고 가정하고 chmod a+x ~/bin/websearch. 이제 사용할 수 있습니다:

~/bin/websearch What is the air-speed velocity of an unladen swallow

관련 정보