쉘 스크립트 만들기 예제

변수는 $없이 선언되지만 호출시 $가 있습니다. 인사하는 엔터티에 대한 변수를 사용하도록 hello-world 예제를 편집해 보겠습니다. 첫 번째 줄은 해시방 또는 세방이라고합니다. 이 스크립트는 /bin/bash 셸을 통해 실행되어야 한다는 것을 유닉스에게 알려줍니다. 두 번째 줄은 단지 에코 문이며, 이 문은 단어를 터미널에 인쇄합니다. 셸 스크립트를 만들려면 편집기에서 새 빈 파일을 엽니다. 모든 텍스트 편집기는 할 것입니다 : vim, emacs, gedit, dtpad 등 세테라는 모두 유효합니다. vim 또는 emacs와 같은 고급 편집기를 선택할 수 있지만 셸 및 Bash 구문을 인식하도록 구성할 수 있으며 대괄호와 세미 콜론을 잊어 버리는 등 초보자가 자주 만드는 오류를 방지하는 데 큰 도움이 될 수 있습니다. 이 가이드는 macOS용입니다. 모든 예제에 /Users/tania를 사용하지만 /Users/your_username이 됩니다. 첫 번째 예제는 입력 파일의 줄 수를 계산하기만 하면 됩니다. while 루프를 사용하여 파일의 모든 줄을 반복하여 루프 헤더에서 읽기 작업을 수행합니다. 처리할 줄이 있지만 이 경우 루프 본문이 실행되어 카운터를 (카운터++)로 늘리기만 하면 됩니다.

또한 현재 줄은 변수 줄의 값을 에코하고 변수의 표준 출력을 $file 변수의 표준 출력을 리디렉션하여 변수 파일에 의해 이름이 지정된 파일에 기록됩니다. 현재 줄이 파일로 표시됩니다. 후자는 물론 라인 카운트에 필요하지 않지만 작업의 성공을 확인하는 방법을 보여줍니다 : 특수 변수 $? 이전 명령(리디렉션된 에코)의 반환 코드가 포함됩니다. 유닉스 규칙에 의해 성공은 0의 반환 코드로 표시되며, 다른 모든 값은 응용 프로그램 특정 의미가있는 오류 코드입니다. 아래 예제에서는 셸 배열을 사용하여 모든 파일 이름(파일)과 줄 수(줄)를 저장합니다. 배열의 요소는 일반적인 [] 표기와 같은 파일[1]을 사용하여 배열 파일의 첫 번째 요소를 참조합니다. bash는 indizes로 정수만 있는 1차원 배열만 지원합니다. 셸 스크립트에 사용되는 다른 명령의 경우와 마찬가지로 클리어 및 에코는 스크립트와 독립적으로 사용할 수도 있습니다. 예를 들어 화면에 지우기 키를 입력하고 ENTER 키를 누르면 이전 명령과 출력이 모두 제거되고 다음 명령을 입력하기 위한 명령 프롬프트만 남게 됩니다.

두 번째 줄은 특수 기호인 #으로 시작합니다. 이렇게 하면 선이 주석으로 표시되고 셸에서 완전히 무시됩니다. 유일한 예외는 파일의 첫 번째 줄이 #로 시작하는 경우입니다! – 우리처럼. 이것은 유닉스가 특별히 취급하는 특별한 지시문입니다. 즉, csh, ksh 또는 다른 것을 대화형 셸로 사용 하더라도 다음에 있는 내용을 Bourne 셸에서 해석해야 합니다. 마찬가지로 Perl 스크립트는 줄 #!/usr/bin/perl로 시작하여 대화형 셸에 다음 프로그램이 perl에 의해 실행되어야 한다고 말할 수 있습니다.