c쉘 스크립트 예제

스크립트에 인수로 제공되는 모든 파일을 반복하기 위해 for-루프를 사용합니다. 변수 $*를 통해 모든 인수에 액세스할 수 있습니다. sed 명령은 줄 수와 일치하고 첫 번째 하위 문자열에 대한 백 참조를 사용하여 전체 줄을 줄 수로 바꿉니다(1). for 루프에서 shell 변수 n은 파일 수에 대한 카운터이며 s는 지금까지의 총 줄 수입니다. 쉘 스크립트는 일반 ASCII 텍스트 파일이므로 텍스트 편집기(심지어 vi!)로 만들 수 있습니다. 그것은 일반적으로 명령줄에 자신을 발행 했을 것 이다 명령의 목록 (MSDOS에서 VMS 또는 배치 파일 에서 파일을 명령 하는 개념에서 매우 유사). 또한 대부분의 UNIX 셸에는 명령 흐름 논리(goto, if/then/else/endif 등)의 기능, 명령줄 매개 변수 검색, 정의 및 사용 (셸) 변수 등 #!/bin/csh # demoloop.csh – 샘플 루프 스크립트 집합 j = 1 동안 $j (<= 5) 에코 " "$j 시간을 환영합니다" @ j++ 끝 쉘에는 터미널 입력에서 명령 파일(셸 스크립트)과 (제한적이지만 유용한 방법)의 제어 흐름을 조절하는 데 사용할 수 있는 몇 가지 명령이 포함되어 있습니다. 이러한 명령은 모두 셸이 입력을 다시 읽거나 건너뛰도록 강요하고 구현으로 인해 일부 명령의 배치를 제한하여 작동합니다. 쉘은 일반적으로 SIGQUIT 신호를 무시합니다. 분리된 작업(또는 bg 또는 %… 및 명령)은 행업을 포함하여 키보드에서 생성된 신호에 면역이 됩니다.

다른 신호에는 셸이 부모로부터 상속된 값이 있습니다. 쉘 스크립트에서 쉘의 인터럽트 및 종료 신호 처리는 onintr에 의해 제어될 수 있습니다. 로그인 쉘은 SIGTERM(종료) 신호를 포착합니다. 그렇지 않으면 이 신호는 셸의 상위 상태의 자식에게 전달됩니다. 로그인 셸이 파일 .logout을 읽을 때 인터럽트를 허용하지 않습니다. 아래 예제에서는 셸 배열을 사용하여 모든 파일 이름(파일)과 줄 수(줄)를 저장합니다. 배열의 요소는 일반적인 [] 표기와 같은 파일[1]을 사용하여 배열 파일의 첫 번째 요소를 참조합니다. bash는 indizes로 정수만 있는 1차원 배열만 지원합니다.