Programing

OS X Dock에서 셸 스크립트를 실행 하시겠습니까?

crosscheck 2020. 6. 8. 20:49
반응형

OS X Dock에서 셸 스크립트를 실행 하시겠습니까?


Mac OSX 도크에서 실행할 쉘 스크립트를 어떻게 설정합니까? 바로 가기를 만들면 편집기에서 파일이 열립니다. 편집을 위해 열지 않고 실행하도록 알리는 플래그가 있습니까?


"쉘 스크립트 실행"단일 단계로 Automator 워크 플로우를 작성할 수 있습니다.

그런 다음 File > Save As파일 형식을 "응용 프로그램"으로 변경하십시오. 응용 프로그램을 열면 셸 스크립트 단계가 실행되고 명령이 실행 된 후 종료됩니다.

이것의 장점은 실제로 매우 간단 하다는 것입니다. 사용자 입력 (예 : 많은 파일 선택)을 매우 쉽게 가져온 다음 쉘 스크립트의 입력 (stdin 또는 인수)에 전달할 수 있습니다.

(자동화는 /Applications폴더에 있습니다!)

워크 플로우 예


터미널 창이 필요없는 경우로 이동 example.sh하여 실행 파일을 응용 프로그램으로 만들 수 있습니다 example.sh.app/Contents/MacOS/example.sh. 도크에 다른 애플리케이션과 같이 애플리케이션을 배치하고 클릭 한 번으로 실행할 수 있습니다.

터미널 창을 표시 해야하는 경우 간단한 해결책이 없습니다. Applescript로 무언가를 할 수는 있지만 그다지 깨끗하지는 않습니다.


OSX 매버릭에서 :

  1. 쉘 스크립트를 작성하십시오.
  2. 쉘 스크립트를 실행 가능하게 만드십시오.

    chmod +x your-shell-script.sh
    
  3. .app접미사 를 갖도록 스크립트 이름을 바꾸십시오 .

    mv your-shell-script.sh your-shell-script.app
    
  4. 스크립트를 OSX 도크로 드래그하십시오.
  5. 스크립트 이름을 .sh접미사로 다시 바꾸십시오 .

    mv your-shell-script.app your-shell-script.sh
    
  6. Finder에서 파일을 마우스 오른쪽 버튼으로 클릭하고 "정보 입수"옵션을 클릭하십시오.
  7. 창의 맨 아래에서 쉘 스크립트가 터미널에서 열리도록 설정하십시오.

이제 도크에서 스크립트를 클릭하면 터미널 창이 나타나고 스크립트가 실행됩니다.

보너스 : 스크립트가 완료되었을 때 터미널을 닫으 exit 0려면 끝에 추가 하고 터미널 설정을 변경 하여이 SO answer 에서와 같이 "정말 종료되면 쉘을 닫으십시오" .


나는 이것이 오래되었지만 다른 사람들에게 도움이되는 경우를 알고 있습니다.

스크립트를 실행해야하고 터미널이 팝업되도록하려면 Abyss Knight가 말한 것처럼 결과를보고 확장자를 .command로 변경하십시오. 두 번 클릭하면 터미널 창이 열리고 실행됩니다.

그러나 자동화 또는 appleScript에서 실행하려면 이것이 필요했습니다. 따라서 이것을 새로운 터미널을 열려면 "쉘 스크립트 실행"에서 실행 한 명령은 "open myShellScript.command"이고 새로운 터미널에서 열립니다.


스크립트가 실행 가능하고 확장자가없는 한, Dock의 오른쪽 (문서 쪽)으로 그대로 끌 수 있으며 편집기를 열지 않고 클릭하면 터미널 창에서 실행됩니다.

foo.sh와 같은 확장자를 원한다면 Finder의 파일 정보 창으로 이동하여 특정 스크립트의 기본 응용 프로그램을 (TextEdit, TextMate, 컴퓨터의 기본 설정에 관계없이) 변경할 수 있습니다 .sh 파일)을 터미널에 연결합니다. 그런 다음 텍스트 편집기에서 열지 않고 실행됩니다. 다시 Dock의 오른쪽으로 드래그해야합니다.


이 글이 도움이 될 것이라고 생각합니다 : http://forums.macosxhints.com/archive/index.php/t-70973.html

설명을 바꾸려면 .command 확장명으로 이름을 바꾸거나 AppleScript를 만들어 셸을 실행할 수 있습니다.


joe가 언급했듯이 쉘 스크립트를 작성한 다음 쉘 스크립트를 호출하는 애플 스크립트 스크립트를 작성하면이를 달성 할 수 있으며 매우 편리합니다.

쉘 스크립트

  1. 선호하는 텍스트 편집기에서 쉘 스크립트를 작성하십시오 (예 :

    mono "/Volumes/Media/~Users/me/Software/keepass/keepass.exe"

    (모노 프레임 워크를 사용하여 w32 실행 파일을 실행합니다)

  2. 쉘 스크립트를 저장하십시오 (예 : "StartKeepass.sh").

애플 스크립트

  1. AppleScript 편집기를 열고 쉘 스크립트를 호출하십시오.

    do shell script "sh /Volumes/Media/~Users/me/Software/StartKeepass.sh" user name "<enter username here>" password "<Enter password here>" with administrator privileges

    • do shell script -외부 쉘 명령을 호출하는 applescript 명령
    • "sh ...." -이것은 1 단계에서 생성 된 쉘 스크립트 (전체 경로)입니다 (직접 명령을 실행할 수도 있습니다. 쉘 스크립트를 생략하고 여기에서 모노 명령을 실행할 수 있습니다)
    • user name -특정 사용자로 명령을 실행하려는 Applescript에 선언합니다.
    • "<enter username here> - "josh"와 같은 사용자 이름으로 바꾸십시오 (따옴표 유지).
    • password -비밀번호를 사과로 표시합니다.
    • "<enter password here>" - replace with your password (keeping quotes) ex "mypass"
    • with administrative privileges - declares you want to run as an admin

Create Your .APP

  1. save your applescript as filename.scpt, in my case RunKeepass.scpt

  2. save as... your applescript and change the file format to application, resulting in RunKeepass.app in my case

  3. Copy your app file to your apps folder


In the Script Editor:

do shell script "/full/path/to/your/script -with 'all desired args'"

Save as an application bundle.

As long as all you want to do is get the effect of the script, this will work fine. You won't see STDOUT or STDERR.


Someone wrote...

I just set all files that end in ".sh" to open with Terminal. It works fine and you don't have to change the name of each shell script you want to run.

참고URL : https://stackoverflow.com/questions/281372/executing-shell-scripts-from-the-os-x-dock

반응형