명령 줄 스크립트를 어떻게 실행합니까?


17

Windows에서는 .bat파일 을 만들 수 있습니다. 두 번 클릭하면 콘솔에 입력 한 것처럼 모든 줄이 해석됩니다.

OS X에서 어떤 파일 또는 프로그램을 사용해야합니까? 내가 파일을 쓰고 싶다면;

 echo hello world

이 파일을 두 번 클릭하고 콘솔에서 실행하고 싶습니다. 어떻게해야합니까?


두 번 클릭했을 때 파일을 실행해야합니까, 아니면 파일 이름을 입력하여 파일을 실행 하시겠습니까?
Phil M


더블 클릭 파일이 더 빠릅니다 :)
Rodrigo

답변:


24

OS X의 터미널 기반은 Linux에서 사용되는 것과 동일합니다. 구체적으로 찾고있는 것을 일반적으로 "쉘 스크립팅"이라고합니다.

Terminal.app()에 열 때 기본 쉘 /Applications/Utilties은 bash 쉘입니다.

OS X에는 .command확장 기능을 통해 실망 스럽지는 않지만 확장 기능을 통해 Finder 및 기타 응용 프로그램을 통해 액세스 할 수있는 내장 쉘 처리기가 있습니다 .sh. 그러나 Finder를 통해 스크립트를 실행하도록 설정하는 것은 여전히 ​​더 복잡합니다.

  1. Hello World 응용 프로그램을 만든 예제와 같은 간단한 셸 스크립트를 만듭니다.
#!/bin/bash
echo "Hello World"
  1. 이 파일을로 저장하십시오 HelloWorld.command.

  2. 이 파일을 실행할 수있는 권한을 부여하십시오. chmod u+x HelloWorld.command그렇게해야합니다.

  3. Finder에서이 파일을 저장 한 디렉토리를여십시오. 그런 다음 HelloWorld.command파일을 두 번 클릭하십시오 .

그러면 터미널이 열리고 스크립트가 실행됩니다. 내 컴퓨터의 출력은 다음과 같습니다.

$ /Users/jason/Applications/HelloWorld.command; 출구;
Hello World
로그 아웃

[처리 완료]

이 파일을 실행하는 다른 방법은 여전히 ​​터미널에있는 동안 파일 ./HelloWorld.command과 같은 디렉토리에 있다고 가정하면됩니다.

그렇게하면 훨씬 더 간단한 결과를 얻을 수 있습니다.

jason-mac 애플리케이션 $ ./HelloWorld.command
Hello World
jason-mac 애플리케이션 $

OS X에서 쉘 스크립트를 작성하고 실행했습니다!


제쳐두고 : OS X가 ".sh"파일로이 작업을 수행하지 않고 ".command"파일 만 사용하는 것은 엄청나게 실망 스럽습니다. 예, 이것을 변경할 수는 있지만 .command가 이미 존재하므로 이것이 제가 제안한 솔루션입니다.
Jason Salaz

실행 서비스 데이터베이스에 .sh를 삽입하는 방법에 대한 질문을 하시겠습니까?
bmike

당신은 분명히 그 생각을 가지고 있었으며 (생각은 내 마음을 넘어 가지 않았다), 당신은 그것을 환영합니다.
Jason Salaz

나는 당신에게서 아이디어를 얻었다-여기에 간다, 나는 그것의 전부에 그것을 요구한다…
bmike

주는 것 :chown: u+x: Invalid argument
로드리고

4

Windows에서 콘솔 또는 명령 프롬프트에 해당하는 것은 / Applications / Utilities /에있는 터미널 앱입니다.

DOS (또는 요즘 무엇을 부르든)와 동등한 것은 "bash"입니다.

Windows에서 배치 파일 (.bat)에 해당하는 것은 쉘 스크립트 (.sh)입니다.

Google에서 "bash" "reference"를 검색하면 나머지는 알아낼 수 있습니다. 또한 Bash Cookbook (O'Reilly)을 구입하는 것이 좋습니다.

특히, 이것은 "hello world"스크립트를 얻기 위해 터미널 창에 입력하는 것입니다.

파일을 만들려면

    echo "echo hello world" > file.sh

파일을 실행할 수있는 권한을 변경하려면

    chmod 755 file.sh

스크립트를 실행하려면

    ./file.sh

Finder에서 파일을 두 번 클릭하려면 파일을 마우스 오른쪽 단추로 클릭 (또는 Control- 클릭)하고 정보 입수를 선택한 다음 연결 프로그램에서 터미널 앱을 선택하십시오. 또는 .sh 확장자 대신 .command 확장자를 사용할 수 있습니다.


2

아마도 AppleScript를보고 싶을 것입니다. 이 책을 살 속호 이안으로는 애플 스크립트에 책을 이동-에 많은 간주됩니다.

사용자가 Mac 응용 프로그램을 자동화하는 또 다른 좋은 방법은 Automator를 사용하는 것 입니다. 시도해 볼 수도 있습니다. 도움이 되었기를 바랍니다.

최신 정보

유닉스 쉘 스크립팅과 같은 것을 찾고있는 것 같습니다. 이 튜토리얼 은 괜찮으며 기본 사항을 다루는 것 같습니다.


나는 이것을 보았지만 AppleScript는 터미널 스크립트가 아닙니다. "터미널로 가서 x 명령을 쓰십시오"라고 생각합니다. 글쎄, .bat 스타일이 아니다 (그리고 조금 더 어렵다)
Rodrigo

Unix 쉘 스크립트가 원하는 것 같습니다.
크리스티안 코레아

0

쉘 스크립트. Ask Different가 깊이 논의하기에 적합한 장소라고 생각하지는 않지만 여기에 매우 자세한 안내서가 있습니다 : http://tldp.org/LDP/abs/html/index.html

Mac OS X은 10.5부터 UNIX 인증을 받았으므로 (오른쪽?)이 지혜는 Linux 및 기타 UNIX 유사 OS에도 적용 할 수 있습니다.

(덜 복잡한 방식으로, Mac OS X의 Automator는 AppleScript Editor와 마찬가지로 강력합니다. 두 가지 모두 쉘 스크립트와 다른 명령을 프로그램과 함께 실행하고 런치 패드를위한 편리한 .app 번들로 래핑하거나 공유 할 수 있습니다 친구)


"스크립트라고하는 쉘 프로그램은 시스템 호출, 도구, 유틸리티 및 컴파일 된 바이너리를"접착 "하여 응용 프로그램을 작성하는 데 사용하기 쉬운 도구입니다. 사실상 전체 레퍼토리입니다. 유닉스 명령어, 유틸리티 및 툴은 쉘 스크립트에 의해 호출 될 수있다. 만약 이것이 충분하지 않다면, 테스트 및 루프 구문과 같은 내부 쉘 커맨드는 스크립트에 추가적인 힘과 유연성을 제공한다. "
Swizzlr

그리고 "적합한 장소"에서 저는 쉘 스크립팅이 SuperUser에서 가장 잘 논의되고 있다고 생각합니다 : superuser.com/questions/tagged/shell-script
Swizzlr


-2

Mac의 경우 .sh 파일, 일명 Shell 스크립트


그러나 파인더에서 호출 할 때을 사용하려고합니다 .command. .sh파인더에서 처리되지 않은 파일 형식입니다 (기본적으로).
Jason Salaz
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.