유닉스 쉘스크립트 예제

유닉스에서 커맨드 쉘은 네이티브 명령 인터프리터입니다. 사용자가 운영 체제와 상호 작용할 수 있는 명령줄 인터페이스를 제공합니다. 쉘로, 그것은 직접 맥 OS X (응용 프로그램 > 유틸리티)와 리눅스 / 유닉스의 터미널을 통해 사용할 수 있습니다. 유닉스 명령은 쉘 스크립트의 형태로 비대화식으로 실행될 수도 있습니다. 스크립트는 함께 실행되는 일련의 명령입니다. 두 번째 줄은 특수 기호인 #으로 시작합니다. 이렇게 하면 선이 주석으로 표시되고 셸에서 완전히 무시됩니다. 유일한 예외는 파일의 첫 번째 줄이 #로 시작하는 경우입니다! – 우리처럼. 이것은 유닉스가 특별히 취급하는 특별한 지시문입니다. 즉, csh, ksh 또는 다른 것을 대화형 셸로 사용 하더라도 다음에 있는 내용을 Bourne 셸에서 해석해야 합니다.

마찬가지로 Perl 스크립트는 줄 #!/usr/bin/perl로 시작하여 대화형 셸에 다음 프로그램이 perl에 의해 실행되어야 한다고 말할 수 있습니다. Bourne 셸 프로그래밍의 경우 #!/bin/sh. bash의 더블 따옴표는 “$”, “” 및 “””를 제외한 모든 메타 문자의 특별한 의미를 억제합니다. 다른 메타 문자는 문자 그대로 읽혀집니다. 또한 큰따옴표 내에서 단일 따옴표를 사용할 수도 있습니다. 우리는 “”로 그들을 탈출 할 때 우리는 큰 따옴표 bash 내에서 큰 따옴표를 사용해야합니다. 예: 예제 11. 버전 7: 여러 파일에 대한 줄 수 첫 번째 줄은 파일이 /bin/sh에 의해 실행될 것이라는 것을 유닉스에게 알려줍니다.

이것은 거의 모든 유닉스 시스템에서 본 쉘의 표준 위치입니다. GNU/Linux를 사용하는 경우 /bin/sh는 일반적으로 bash(또는 최근에는 대시)에 대한 기호 링크입니다. 첫 번째 예제는 입력 파일의 줄 수를 계산하기만 하면 됩니다. while 루프를 사용하여 파일의 모든 줄을 반복하여 루프 헤더에서 읽기 작업을 수행합니다. 처리할 줄이 있지만 이 경우 루프 본문이 실행되어 카운터를 (카운터++)로 늘리기만 하면 됩니다. 또한 현재 줄은 변수 줄의 값을 에코하고 변수의 표준 출력을 $file 변수의 표준 출력을 리디렉션하여 변수 파일에 의해 이름이 지정된 파일에 기록됩니다. 현재 줄이 파일로 표시됩니다. 후자는 물론 라인 카운트에 필요하지 않지만 작업의 성공을 확인하는 방법을 보여줍니다 : 특수 변수 $? 이전 명령(리디렉션된 에코)의 반환 코드가 포함됩니다. 유닉스 규칙에 의해 성공은 0의 반환 코드로 표시되며, 다른 모든 값은 응용 프로그램 특정 의미가있는 오류 코드입니다.

우리는 따옴표와 인용으로 시작하기 전에 우리는 메타 문자를 탈출에 대해 뭔가를 알아야한다. 이스케이프는 메타 문자의 특별한 의미를 억제하므로 메타 문자는 문자 그대로 bash로 읽습니다. 이렇게하려면 백슬래시 “”문자를 사용해야합니다. 예: 유닉스의 모든 프로세스는 기본적으로 STDIN(표준 입력), STDOUT(표준 출력) 및 STDERR(표준 오류)의 세 가지 입력/출력 채널에 액세스할 수 있습니다. 유닉스 및/또는 쉘 프로그래밍을 접하는 경우, 이 사이트는 주로 펄 프로그래밍에 관한 것이지만, 실제 펄 메이븐은 다른 많은 기술에 익숙해져야 합니다. 펄뿐만 이 아닙니다. 이 페이지는 가장 일반적으로 사용되는 유닉스/Linux 셸 언어 중 하나인 Bash의 표현모음입니다. STDOUT의 기본 동작을 재정의하여 “>”를 사용하여 이 출력을 파일로 리디렉션합니다: 변수를 암시적으로 선언하는 것은 bash의 표준이지만 변수를 명시적으로 선언하고 형식을 첨부할 수 있습니다.