저는 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에 새 탭을 열고 기본 검색 엔진에서 쿼리를 수행하도록 지시할 수 있는 방법이 없습니다.
그래서 제가 드릴 수 있는 최선의 방법은 다음과 같습니다.
- 원하는 검색 엔진을 선택하고 쿼리 URL을 기록해 두십시오. (가장 쉬운 방법은 "qwert"와 같은 임의의 문자열을 검색한 다음 정신적으로 이를 다음과 같은 자리 표시자로 바꾸는 것입니다
https://duckduckgo.com/?q=qwert
.https://duckduckgo.com/?q=<placeholder>
- 이 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