bash script 예제

먼저 배쉬 인터프리터가 어디에 있는지 알아내야 합니다. 명령줄에 다음을 입력: 다시, 이러한 동일한 인용 동작 *또는 @: 그것은 다음 인터프리터 (이 경우, /bin/bash)를 실행 하는 경우 배열로 전송 됩니다. 여러 언어에서 고유한 기능에서 bash는 변수값을 참조하면서 변수값으로 작동할 수 있습니다. #! 많은 스크립팅 언어가 주석에 #을 사용하는 이유입니다. 둘 다 현재 스크립트/프로시저에 전달된 인수를 포함하는 것처럼 보이지만 인용할 때 미묘하게 다른 동작이 있습니다: 첫 번째 예제는 입력 파일의 줄 수를 계산하기만 하면 됩니다. while 루프를 사용하여 파일의 모든 줄을 반복하여 루프 헤더에서 읽기 작업을 수행합니다. 처리할 줄이 있지만 이 경우 루프 본문이 실행되어 카운터를 (카운터++)로 늘리기만 하면 됩니다. 또한 현재 줄은 변수 줄의 값을 에코하고 변수의 표준 출력을 $file 변수의 표준 출력을 리디렉션하여 변수 파일에 의해 이름이 지정된 파일에 기록됩니다. 현재 줄이 파일로 표시됩니다. 후자는 물론 라인 카운트에 필요하지 않지만 작업의 성공을 확인하는 방법을 보여줍니다 : 특수 변수 $? 이전 명령(리디렉션된 에코)의 반환 코드가 포함됩니다.

유닉스 규칙에 의해 성공은 0의 반환 코드로 표시되며, 다른 모든 값은 응용 프로그램 특정 의미가있는 오류 코드입니다. “bash bomb”을 만들 수 있습니다: 확장 중 크기가 기하급수적으로 증가하는 패턴: 셸이 스크립트를 실행하면 #!/path/to/인터프리터를 찾습니다. 현재 디렉터리에서 스크립트를 실행하려면 ./scriptname을 실행하고 원하는 매개 변수를 전달할 수 있습니다. 두 번째 줄은 특수 기호인 #으로 시작합니다. 이렇게 하면 선이 주석으로 표시되고 셸에서 완전히 무시됩니다. 유일한 예외는 파일의 첫 번째 줄이 #로 시작하는 경우입니다! – 우리처럼. 이것은 유닉스가 특별히 취급하는 특별한 지시문입니다. 즉, csh, ksh 또는 다른 것을 대화형 셸로 사용 하더라도 다음에 있는 내용을 Bourne 셸에서 해석해야 합니다. 마찬가지로 Perl 스크립트는 줄 #!/usr/bin/perl로 시작하여 대화형 셸에 다음 프로그램이 perl에 의해 실행되어야 한다고 말할 수 있습니다. Bourne 셸 프로그래밍의 경우 , 우리는 #!/bin/sh.

bash에 대한 간략한 예제 기반 가이드를 계속 읽어야 합니다. 작가,하지만 예를 들어 나는 리눅스에 대한 DWIM 펄의 빌드 스크립트에 대한이 필요. 스크립트에 인수로 제공되는 모든 파일을 반복하기 위해 for-루프를 사용합니다. 변수 $*를 통해 모든 인수에 액세스할 수 있습니다. sed 명령은 줄 수와 일치하고 첫 번째 하위 문자열에 대한 백 참조를 사용하여 전체 줄을 줄 수로 바꿉니다(1). for 루프에서 shell 변수 n은 파일 수에 대한 카운터이며 s는 지금까지의 총 줄 수입니다. 이 스크립트에는 두 줄만 있습니다. 첫 번째는 파일을 실행하는 데 사용할 프로그램을 나타냅니다. 마찬가지로 예를 들어 우리는 파일이 존재하지 않는지 확인하기 위해 루프 를 사용하는 데 사용할 수 있습니다. 이 스크립트는 파일이 존재할 때까지 절전 모드로 유지됩니다. -e 옵션을 무효화하는 bash negator “!” 차이점을 설명하기 위해 몇 가지 도우미 스크립트를 만들어야 합니다. bash에는 문자열 백틱처럼 보이는 또 다른 인용 양식이 있습니다.

bash의 주석은 #으로 시작하여 줄의 끝까지 실행됩니다:이 모든 것을 함께 넣으면 bash에서 프로그램을 작성할 수 있습니다. 첫 번째 줄은 파일이 /bin/sh로 실행될 것이라는 유닉스를 알려줍니다. 이것은 거의 모든 유닉스 시스템에서 본 쉘의 표준 위치입니다. GNU/Linux를 사용하는 경우 /bin/sh는 일반적으로 bash(또는 최근에는 대시)에 대한 기호 링크입니다.