OSX 'Open with'bash 스크립트


8

나는 bash 스크립트를 가지고 있으며, 잠재적으로 많은 스크립트가 있으며, OSX의 파인더에서 파일을 열 수 있기를 원합니다.

그것은 정말로, 정말로 간단한 개념이지만 어떤 이유로 bash 스크립트는 파인더의 '열기'대화 상자에서 회색으로 표시됩니다.

나는 애플 리케이션이나 패키지를 앱으로 사용하는 다양한 방법이 있다는 것을 모았습니다 ...하지만이 중 하나를 알아낼 수 없었 으며이 사소한 작업을 위해 다른 언어를 선택하고 싶지는 않습니다. -누군가 나에게 이것을 어떻게 할 수 있습니까?

감사!

답변:


11

불가능합니다. Launch Services는 응용 프로그램 식별자와 함께 작동하며 bash 스크립트에는 없습니다.

Automator를 사용하여 랩퍼 애플리케이션을 작성해야합니다.

  1. 자동화 시작
  2. 신청을 선택하십시오
  3. 을 찾아 실행 쉘 스크립트 작업을 오른쪽에 추가합니다.
  4. 입력 을 인수로 전달
  5. 거기에 스크립트를 넣어
  6. 어딘가에 저장

Growl 명령 줄 유틸리티를 사용하는 내 버전은 다음과 같습니다 .

여기에 이미지 설명을 입력하십시오

결과:

여기에 이미지 설명을 입력하십시오


당신은에 이러한 변화가 미치는 영향 볼 수 있습니다 ~/Library/Preferences/com.apple.LaunchServices.plist때 모두 변경을 :

여기에 이미지 설명을 입력하십시오

( "Test"는 Automator 응용 프로그램에 지정한 이름입니다)


감사. 나는 소용돌이를 주었지만 Automator가 만든 앱으로 열려고 시도 합니다. "셸 스크립트 실행"작업에 오류가 발생했습니다. 조치 특성을 확인하고 워크 플로우를 다시 실행하십시오. 내가 본 동안 가장 도움이되지 않은 오류 메시지에 대한 것입니다!
— Rich

@Rich 셸 스크립트 실행 작업에서 기본 스크립트와 함께 작동합니까? 아니면 그때도? 패스 입력 환경 설정 을 변경 한 것을 기억 하십니까? 응용 프로그램을 두 번 클릭하거나 파일을 응용 프로그램으로 드래그하거나 관련 파일 만 열려고합니까? 다른 방법으로 시작하면 어떻게됩니까?
— Daniel Beck

감사. cat을 호출 할 때 기본 출력의 결과를 어떻게 알지 모르지만 오류는 없었습니다. 응용 프로그램이 비표준 위치에서 스크립트를 호출하지 않고 / usr / local / bin에 스크립트를 만든 다음 실행하려고하면 너무 많은 수준의 기호 링크가 있음을 알았습니다 (1 ?! ) 그래서 방금 스크립트를 복사했는데 이제는 작동하는 것 같습니다. 감사!
— rich

1

Daniel Beck의 지침을 약간 수정하여 Mac의 Chrome에서 열려고하는 URL 파일 (Firefox에서도 작동 함)에서 작동하도록했습니다.

내가 사용한 스크립트는 다음과 같습니다.

sed 's/^URL=/URL=/' "$1" | grep -m 1 '^URL=' | sed 's/^URL=//' | tr -d '\r' | xargs open -a "Google Chrome"

다음과 같은 일반적인 URL 파일에서 URL = 행을 구문 분석합니다.

[InternetShortcut]
URL=http://www.docircuits.com/pricing
IDList=
HotKey=0
IconFile=O:\Apps\Firefox\Data\profile\shortcutCache\4t0JW4mY1qRPhiYz1fY3dw==.ico
IconIndex=0

~ / Library 디렉토리와 같은 곳에 Automator 스크립트를 저장하십시오. 내 OpenUrl.app에 전화했습니다.

이제 URL 파일로 이동하여 "정보 입수"팝업을여십시오. 연결 프로그램 명령을 OpenUrl.app 스크립트로 변경하십시오. 하나만 사용하여 테스트하거나 "모두 변경 ..."을 클릭하십시오. 처음 클릭하면 오류가 발생했지만 두 번째로 작동하는 것 같습니다.

이것을 개발할 때 "Run Shell Script"오류가 발생했지만 스크립트의 실제 오류 때문이었습니다. Daniel의 스크립트의 주요 문제는 열려고하는 파일 이름의 공백을 처리하지 않는다는 것입니다.


-1

사용 reattach-to-user-namespace에서 하나 의 repo 또는과 brew install reattach-to-user-namespace. 이것은 Sierra에서 작동하지만 다른 OS에 대해서는 확실하지 않습니다.

설치되면 bash 스크립트에서 다음과 같이 사용하십시오.

사용자 이름 공간에 다시 연결 a_cool_file.png


이것은 질문에 대답하지 않는 것 같습니다. OP는 Finder의 "연결 프로그램"기능을 사용하여 Bash 스크립트로 파일을 열려고합니다. Tmux 및 Screen에서 클립 보드 지원을 제공하는 것은 도움이되지 않습니다. 특히 Tmux 또는 Screen이 관련되어 있다는 표시가 없기 때문입니다.
— 8bittree
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.