3. 첫 스크립트

RSS 피드트위터에서 공유

사이 쉘 스크립트는 튜토리얼 PDF 만 5 달러에 대한 우리의 첫 번째 쉘 스크립트,우리는 단지 스크립트를 작성하고 말하는”안녕하세요”. 우리가 다 하려고 더 많은 것을 얻을의 안녕하세요 Worldprogram 보다 다른 튜토리얼에서 당신은 당신이 이제까지 읽기:-)
파일을 만들(first.sh)다음과 같다:first.sh

#!/bin/sh# This is a comment!echo Hello World # This is a comment, too!

첫 번째는 유닉스 파일에 의해 실행되는/bin/sh.이것은 거의 everyunix 시스템에서 Bourne 쉘의 표준 위치입니다. GNU/Linux 를 사용하는 경우/bin/sh 는 일반적으로 bash(또는 최근에는 dash)에 대한 심볼릭 링크입니다.

두 번째 줄은 특수 기호로 시작합니다.#. 이것은 주석으로 선을 표시하고 쉘에 의해 완전히 무시됩니다.
유일한 예외는#!가있는 filestarts 의 첫 번째 줄이 우리처럼. 이것은 특별한 지시입니다.유닉스는 특별히 취급합니다. 그것이 의미하는 경우에도 당신은 당신을 사용하여 csh,ksh,또는 다른 것으로호는 무엇 followsshould 해석해 본 쉘입니다.
마찬가지로 Perl 스크립트는 #!/usr/bin/perl 줄로 시작하여 대화 형 셸에 다음과 같은 프로그램이 perl 에 의해 실행되어야한다고 말할 수 있습니다. 에 대한 본 쉘 프로그래밍,우리가 행하는#!/bin/sh.

세 번째 줄을 실행하는 명령:echo과 함께,두 개의 매개변수,orarguments-첫번째"Hello""World".
참고echo자동으로 매개 변수 사이에 단일 공간을 넣어 것입니다.
#기호는 여전히 주석을 표시합니다.

지금 실행하는chmod 755 first.sh./first.sh.
화면은 다음과 같이해야합니다.

$ chmod 755 first.sh
$ ./first.sh
Hello World
$

당신은 아마 예상했을 것입니다! 수도 실:

$ echo Hello World
Hello World
$

이제 몇 가지 변경합니다.
먼저echo는 매개 변수 사이에 하나의 공간을 둡니다. “안녕하세요”와”세계”사이에 몇 개의 공백을 넣으십시오. 당신은 출력이 될 무엇을 기대합니까? 그들 사이에 탭 문자를 넣는 것은 어떻습니까?
언제나처럼 쉘 프로그래밍,그것을 시도하고 참조하십시오.
출력은 정확히 동일합니다! 우리는 전화echoprogramwith 두 개의 인수를,그것은 걱정하지 않는 모든 이상cpdoesabout 틈새 그들 사이에.이제 코드를 다시 수정하십시오.

#!/bin/sh
# This is a comment!
echo "Hello World" # This is a comment, too!

이번에는 작동합니다. 경험이 있다면 당신도 예상했을 것입니다.다른 프로그래밍 언어. 그러나 더 복잡한 명령과 쉘 스크립트로 goingon 이 무엇인지 이해하는 열쇠는 이해하고 ableto 설명 할 수 있습니다:왜?
echo는 이제 하나의 인수 인”Hello World”문자열로 호출되었습니다. 그것은 이것을 정확하게 인쇄합니다.
여기서 이해해야 할 점은 쉘이 호출되는 프로그램에 themon 을 전달하기 전에 인수를 구문 분석한다는 것입니다. 이 경우 따옴표를 제거하지만 문자열을 하나의 인수로 전달합니다.
마지막 예제로 다음 스크립트를 입력하십시오. 려고 예측 theoutcome 기 전에 당신이 그것을 실행:

first2.sh

#!/bin/sh
# This is a comment!
echo "Hello World" # This is a comment, too!
echo "Hello World"
echo "Hello * World"
echo Hello * World
echo Hello World
echo "Hello" World
echo Hello " " World
echo "Hello "*" World"
echo `hello` world
echo 'hello' world

이 모든 것으로 예상되는? 그렇지 않다면 걱정하지 마십시오! 이것들은 우리가이 튜토리얼에서 다루게 될 것들 중 일부에 지나지 않습니다… 그리고 예,우리는echo보다 더 강력한 명령을 사용합니다!

RSS 피드트위터에서 공유
뒤:철학을 다음 변수(부 1)

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다