이 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.