터미널에서 .sh 또는 .command 파일을 실행하는 방법


87

파인더에서 직접 온라인으로 다운로드 한 스크립트를 실행할 수 있기를 원했지만 파일을 두 번 클릭해도 작동하지 않습니다.

답변:


103

터미널을 열고 sh /path/to/file입력 한 다음 Enter 키를 누릅니다.

더 빠르게 입력 sh하고 공백 을 입력 한 다음 파일을 창으로 끌어서 창의 아무 곳이나 아이콘을 놓으십시오.


3
쉘 스크립트가 tcsh, zsh 또는 ksh와 같은 다른 쉘 구문으로 작성된 경우 어떻게 될까요? 접미사 sh는 "이 쉘에서 스크립트를 실행하지 않는"쉘 스크립트를 나타냅니다.
fd0

3
@ fd0 shebang 라인 이이를 처리합니다.
user14492

4
@ user14492- shell shell_scriptshebang 행이 무시 될 때 쉘 스크립트를 호출 할 때 . 쉘은 첫 번째 행을 주석으로 읽습니다.
fd0

@ fd0, 이해가되지 않습니다. 어떻게 sh /path/to/file라도 대안에서 의미 다른 /path/to/file.sh?
Pacerier

2
@ Pacerier- 첫 번째 양식에서, 호출하는 사용자는 파일을 읽을 수 있어야하고 파일을 읽을 인터프리터를 선택해야합니다. 두 번째 형태에서, 호출 사용자에 대해 파일의 권한을 읽고 실행해야하며 인터프리터는 스크립트의 첫 번째 행에서 해시 뱅에 의해 결정됩니다. 두 경우 모두 커널은 파일의 접미사를 해석하지 않습니다.
fd0

12

또는 할 수도 있습니다

cd /directory/with/executable
chmod +x executable     # only required if your file is not already executable
./executable

또한 지정된 쉘 (shebang에 지정된 경우)으로 실행 파일을 실행합니다 #!/bin/(shell)


1
이 질문에 "온라인으로 다운로드 한 스크립트를 실행하십시오"라는 메시지가 표시됩니다. 인터넷에서 다운로드 한 파일은 일반적으로 권한이 644로 설정되어 있습니다.
nohillside

@patrix 인터넷뿐만 아니라 계정의 기본 마스크로 인해 다른 파일 시스템에서 귀하의 파일로 복사되는 모든 파일이라고 생각합니다.
rwenz3l

8
chmod u+x myfile.sh
cp myfile.sh /usr/local/bin

~/.bash_profile다음 줄을 편집 하고 추가하십시오.

alias myfile=./myfile.sh

다음 명령 줄을 실행하십시오.

source ~/.bash_profile

그러면 파일을 프로그램으로 실행할 수 있습니다

$ myfile


우분투에서 경로에있는 모든 스크립트는이만큼 실행할 수 #~/bin/sh있는 동안, OSX이 있어야 스크립트 .sh확장과 alias그들의 각 하나를 들어. : -O
Fabrizio Bertoglio 2

6

스크립트 파일을 실행하려면 다음 단계를 수행하십시오.

  1. .sh 파일을 마우스 오른쪽 버튼으로 클릭하십시오.

  2. Open With 위로 마우스를 가져갑니다 .

  3. 기타 ...를 선택하십시오 .

  4. 응용 프로그램 폴더 에 있어야 합니다. 유틸리티 폴더를 열고 Terminal.app를 선택하십시오.

  5. Terminal.app를 선택할 수 없으면 활성화 된 응용 프로그램을 권장 응용 프로그램 에서 모든 응용 프로그램 으로 변경하십시오 . 창의 맨 아래에 있습니다.

  6. .shTerminal.app로 모든 파일 을 열려면 항상 연결을 선택하십시오 .

  7. 창의 오른쪽 하단에 있는 열기 버튼을 누릅니다 .


3

다운로드 후 작동하지 않는 이유는 파일 권한이 허용하지 않기 때문입니다. 실행 권한을 활성화하려면 터미널을 열고을 입력하십시오 chmod 755 /path/to/script. 전체 경로를 입력하는 대신 Finder에서 스크립트를 터미널 창으로 드래그 할 수 있습니다. 그런 다음 실행하려면을 입력하십시오 /path/to/script. 다시 한 번, 파일을 터미널 창으로 끌어서 놓을 수 있습니다. 이 구문은 스크립트의 첫 번째 줄에 정의 된대로 올바른 쉘을 사용하여 스크립트를 실행해야합니다.


파일을 만든 텍스트 편집기에서 내 파일 .sh가 열립니다. 대신 터미널에서 어떻게 열 수 있습니까? 올바른 권한을 설정했습니다.
bart

@bart 파인더 내에서 스크립트를 직접 실행하려면 .command 확장자를 추가해야합니다.
rwenz3l
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.