이 file.sh를 더블 클릭으로 실행 가능하게하려면 어떻게해야합니까?


165

먼저 Mac을 사용하고 있습니다.

다음으로이 "file.sh"를 실행해야합니다. 실행할 때마다 터미널을 열고 다음을 입력해야합니다.

cd /Users/Jacob/Documents/folderWithFileInIt
bash file.sh

괜찮습니다.하지만 더블 클릭으로 파일을 실행하면 훨씬 빠를 것 같습니다.

내 질문은 어떻게 더블 클릭을 통해이 파일을 실행 가능하게합니까?

내 아이디어는 다음 중 하나였습니다.

a) chmod와 같은 것을 터미널에 입력하고 권한을 변경합니까?

b) 파일을 만들고 위에 쓴 코드를 ^에 넣은 다음 해당 파일을 실행 가능하게합니까?

c) 어떻게 든 자동화를 수행합니까?

어느 방법이 가장 좋거나 더 좋은 방법이 있습니까? 또한 터미널을 처음 사용하는 경우 최대한 설명해주십시오. 감사.


1
좋은 클릭하기 쉬운 스크립트를 원한다면 Automator가 올바른 도구입니다. 당신은 당신의 질문에서 그것을 알고있는 것 같습니다. 그래서 당신의 질문은 무엇입니까?
— Rob Napier

같은 질문이지만 jdk dmg, 아이콘을 만들기위한 일부 응용 프로그램 폴더, 일부 항아리 ..하지만 자동화 또는 .command를 통해 실행 / 생성하지 못했습니다.
— SANTOSH

답변:


350

기본적으로 *.sh파일은 텍스트 편집기 (Xcode 또는 TextEdit)에서 열립니다. 터미널을 열 때 실행할 쉘 스크립트를 만들려면 "명령"확장자를 사용하여 이름을 지정하십시오 (예 :) file.command. 기본적으로 이들은 터미널로 전송되며 파일은 쉘 스크립트로 실행됩니다.

또한 파일이 실행 가능한지 확인해야합니다. 예 :

chmod +x file.command

이것이 없으면 터미널은 실행을 거부합니다.

#!터미널은 특히 기본 쉘로 스크립트 를 실행하기 때문에 스크립트는 이 특정 시나리오에서 접두어 로 시작하지 않아도됩니다 . (물론 #!사용되는 쉘을 사용자 정의하려는 경우 또는 다른 쉘을 사용하는 동안 명령 행에서 실행할 수 있도록하려면 라인을 추가 할 수 있습니다 .)

또한 터미널은 작업 디렉토리를 변경하지 않고 쉘 스크립트를 실행합니다. cd실제로 특정 작업 디렉토리에서 실행해야하는 경우 명령으로 스크립트를 시작 해야합니다.


1
더 유용한 답변에 감사드립니다.
— Jacob

46
또한 cd "`dirname "$0"`"현재 작업 디렉토리를 쉘 skript가있는 디렉토리로 설정하는 데 사용할 수 있습니다.
— gearsdigital

3
미학적 이유로 .command 파일을 마우스 오른쪽 버튼으로 클릭하고 정보를 열어야합니다. 이름과 접미사 아래에 접미사를 숨길 수있는 옵션이 있습니다.
— Bijan

이 방법을 사용하여 open -n ...명령을 통해 앱을 실행합니다. 작동하지만 터미널 창이 열릴 때마다 "[Process completed]"가 표시됩니다. 어떻게 든 터미널 창 모양을 막을 수 있습니까?
— Nik

1
@Nik 터미널 창에 표시하고 싶지 않다면 터미널에서 실행할 필요가 없습니다. 대신 실행 파일이 shebang 스크립트 인 응용 프로그램 번들로 만드십시오. 또는 스크립트를 실행하는 AppleScript 또는 Automator 애플릿을 만드십시오. 터미널 환경 설정을 사용하여 프로세스가 종료 될 때 창을 닫도록 프로파일을 변경할 수도 있지만 사용자 상호 작용없이 쉘 스크립트를 실행하려는 경우에는 최상의 솔루션이 아닙니다.
— Chris 페이지

31

확장을 모두 제거한 다음 두 번 클릭하십시오. 대부분의 시스템 셸 스크립트는 다음과 같습니다. 언제 까지나 그것은이 같은 오두막 작동됩니다.


1
BTW, "shebang"은 대부분이 줄 앞에 있습니다 : #! / bin / sh 그러나 다른 경우에는 제공된 링크를 읽을 수 있습니다.
— Lukas Liesis

이 접근법은 chmod를 수행 할 필요가 없습니까?
— Atul

11

.sh터미널 에서 파일 을 열도록 Finder에 지시 할 수 있습니다 .

  1. 파일을 선택하십시오
  2. 그것에 정보를 얻으십시오 (cmd-i)
  3. "연결 프로그램"섹션의 팝업 메뉴에서 "기타 ..."를 선택하십시오.
  4. 응용 프로그램으로 터미널을 선택하십시오

이것은 .command제외하고 이름을 바꾸는 것과 똑같은 효과가 있습니다 ... 이름을 바꿀 필요는 없습니다 :)


8
  1. 터미널 시작
  2. 유형-> 나노 파일 이름
  3. 배치 파일 내용 붙여 넣기 및 저장
  4. 유형-> chmod + x fileName
  5. exe 파일을 만들면 두 번 클릭하면됩니다.

파일 이름은 큰 따옴표로 묶어야합니다. Mac을 사용하고 있기 때문에-> 내 경우에는 배치 파일의 내용 이

cd / 사용자 / 사용자 이름 / 문서 / SeleniumServer

java -jar 셀레늄 서버 독립형 -3.3.1.jar-역할 허브

확실히 작동합니다


0

다음 chmod과 같이 사용하여 파일 실행 파일을 변경할 수 있습니다

chmod 755 file.sh

이 명령을 사용하여 실행하십시오.

./file.sh

SO에 오신 것을 환영합니다! 귀하의 답변은 이미 수락 된 답변에 아무 것도 추가하지 않습니다. 이것이 이미 존재하는 다른 답변과 다른 이유를 설명하십시오.
— GabrielOshiro
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.