본 셸
Bourne shell![]() | |
원저작자 | 스티븐 본 |
---|---|
개발자 | 벨 전화 연구소 |
초기 릴리즈 | 전 ( |
운영 체제 | 유닉스 |
유형 | Unix 쉘 |
면허증. | [논의 중] |
Bourne 셸()sh
은 컴퓨터 운영 체제용 셸 명령줄 인터프리터입니다.
Bourne 쉘은 버전7 Unix의 디폴트셸이었습니다Unix와 같은 시스템은/bin/sh
대부분의 사용자가 다른 셸을 사용하는 경우에도 Bourne 셸 또는 호환되는 셸에 대한 심볼릭링크 또는 하드링크입니다
Bell Labs의 Stephen Bourne이 개발한 이 제품은 Thompson 쉘을 대체하는 것으로, 그 실행 파일의 이름은 다음과 같습니다.sh
1979년 단과대학에 배포된 버전7 Unix 릴리즈에서 공개되었습니다.인터랙티브한 명령어 인터프리터로 사용되지만 스크립트 언어로도 사용되었으며 구조화된 프로그램을 생성하는 것으로 간주되는 대부분의 기능을 포함하고 있습니다.
이 책은 Brian Kernighan과 Rob Pike가 Unix Programming Environment를 출판하면서 인기를 끌었습니다.이것은 이 셸을 튜토리얼 형식으로 프로그래밍 언어로 제공한 최초의 상업 출판물입니다.
역사
오리진스
Bourne 쉘에 대한 [1]작업은 1976년에 처음 시작되었습니다.버전 7 [2]Unix에서 처음 등장한 Bourne 쉘은 Mashey 쉘을 대체했습니다.
셸의 주요 목표는 다음과 같습니다.[3]
- 셸 스크립트를 필터로 사용할 수 있도록 합니다.
- 제어 흐름과 변수를 포함한 프로그래밍 가능성을 제공합니다.
- 모든 입력/출력 파일 기술자를 제어합니다.
- 스크립트 내의 신호 처리를 제어합니다.
- 셸 스크립트를 해석할 때 문자열 길이에 제한이 없습니다.
- 문자열 인용 메커니즘을 합리화하고 일반화합니다.
- 환경 메커니즘입니다.이것에 의해, 기동시에 콘텍스트를 확립할 수 있게 되어, 셸 스크립트가 명시적인 위치 파라미터를 사용하지 않고, 콘텍스트를 서브 스크립트(프로세스)에 건네줄 수 있게 되었습니다.
오리지널 버전의 기능
버전 7 UNIX Bourne 쉘의 특징은 다음과 같습니다.
- 스크립트는 파일 이름을 사용하여 명령어로 호출할 수 있습니다.
- 대화식 또는 비대화식으로 사용 가능
- 명령어 동기 및 비동기 실행 모두 허용
- 입출력 리다이렉션 및 파이프라인 지원
- 내장 명령어 세트를 제공합니다.
- 흐름 제어 구조, 견적 기능 및 기능을 제공합니다.
- 유형 없는 변수
- 로컬 및 글로벌 변수 범위 제공
- 스크립트 실행 전 컴파일이 필요 없음
- goto 기능이 없기 때문에 코드 재구성이 필요할 수 있습니다.
- 백 따옴표를 사용한 명령어 대체:
`command`
. - 문서 작성 방법:
<<
입력 텍스트 블록을 스크립트에 포함시킵니다. for ~ do ~ done
루프, 특히 의 사용$*
논거나 논거 등을 반복하다for ~ in ~ do ~ done
루프를 사용하여 목록을 반복합니다.case ~ in ~ esac
주로 인수 해석을 지원하기 위한 선택 메커니즘입니다.sh
는 키워드 파라미터 및 내보내기 가능한 변수를 사용한 환경변수 지원을 제공합니다.- 입력 및 출력을 제어하기 위한 강력한 조항과 식 일치 기능을 포함합니다.
또한 Bourne 쉘은 파일 기술자를 사용하는 규칙을 최초로 채택했습니다. 2>
오류 메시지의 경우 오류 메시지를 데이터와 분리하여 스크립팅 중에 프로그램 제어가 대폭 향상됩니다.
Stephen Bourne의 코딩 스타일은 그가 캠브리지 대학에서 연구해 온 ALGOL 68C[2] 컴파일러에 대한 경험에서 영향을 받았다.프로그램이 작성된 스타일과 더불어 본은 ALGOL 68의 일부를 재사용했다.if ~ then ~ elif ~ then ~ else ~ fi
,case ~ in ~ esac
그리고.for/while ~ do ~ od
(사용방법)done
대신od
일반적인 Unix Bourne 셸 구문의 구문을 참조해 주세요.게다가 V7 쉘은 C로 기술되어 있습니다만, Bourne은 몇개의[4] 매크로를 이용하여 C 소스 코드에 ALGOL 68의 맛을 부여했습니다.이러한 매크로(유닉스 버전 4.2에서 배포된 finger 명령어와 함께)BSD)는 국제 난독화 C코드 콘테스트(IOCC)[5]에 영감을 주었습니다.
1979년 이후 도입된 기능
수년간 본 쉘은 AT&T에서 강화되었다.따라서 다양한 변형은 함께 출시된 각각의 AT&T Unix 버전과 같이 불립니다(일부 중요한 변형은 버전 7, 시스템입니다).III, SVR2, SVR3, SVR4).셸이 버전화되지 않았기 때문에 셸을 식별할 수 있는 유일한 방법은 기능을 [6]테스트하는 것이었습니다.
1979년 이후 Bourne 쉘 버전의 특징은 다음과 같습니다.[7]
- 붙박이
test
명령어 – System III 쉘(1981) - 코멘트 문자로서의 번호– System III 쉘(1981)
- 파라미터 치환 콜론 "${parameter:=word}" – System III 쉘(필수)
continue
인수 포함 – System III 쉘(1981)cat <<-EOF
여기에 삽입된 문서의 경우– System III 쉘(1981)- 기능 및
return
내장 – SVR2 쉘 (1984) - 빌트인
unset
,echo
,type
– SVR2 쉘 (1984) - 소스 코드 de-ALGOL68-ized – SVR2 쉘 (1984)
- 모던"
$@
" – SVR3 쉘 (1986) - 붙박이
getopts
– SVR3 쉘(1986) - 정리된 파라미터 처리로 반복 호출 가능한 함수– SVR3 쉘 (1986)
- 8비트 클린– SVR3 쉘 (1986)
- 작업 제어 – SVR4 쉘 (1989)
- 멀티바이트 지원– SVR4 쉘 (1989)
변종
DMERT 쉘
DUPlex Multi-Environment Real-Time(DMERT)은 1970년대에 일리노이주 네이퍼빌의 Bell Labs Indian Hill 로케이션에서 개발된 하이브리드 시분할/실시간 운영체제입니다.이 운영체제는 1978년 Bourne Shell "VERSION sys137 DATE 1978 Octure 12:39:57"[citation needed]의 스냅샷을 사용합니다.DMERT 쉘은 통신업계에서 [citation needed]아직 사용되고 있는 3B21D 컴퓨터에서 실행됩니다.
코른 조개
David Korn이 원본 Bourne Shell 소스 [8]코드를 기반으로 작성한 Korn 쉘(ksh)은 Bourne 쉘과 C 쉘 사이의 중간 길이었다.이 구문은 주로 Bourne 쉘에서 가져온 것이며 작업 제어 기능은 C 쉘과 유사합니다.원래의 Korn Shell(도입 연도부터 ksh88로 알려짐)의 기능은 POSIX 쉘 표준의 기초로 사용되었습니다.최신 버전인 ksh93은 2000년부터 오픈소스로 제공되어 일부 Linux 디스트리뷰션에서 사용되고 있습니다.pdksh로 알려진 ksh88의 클론이 OpenBSD의 기본 셸입니다.
쉴리 본 셸
Jörg Schilling의 Schily-Tools에는 3개의 Bourne Shell [9]파생 모델이 포함되어 있습니다.
다른 셸과의 관계
C 쉘
C 쉘의 저자 빌 조이는 본 셸이 인터랙티브한 사용에 [10]대해 불친절하다고 비판했는데, 스티븐 본은 C 쉘의 우수성을 인정했다.그러나 Bourne은 자신의 셸이 스크립트 작성에 탁월하며 모든 Unix [11]시스템에서 사용할 수 있다고 말했고, Tom Christiansen은 또한 C 셸이 스크립팅과 [12]프로그래밍에 적합하지 않다고 비판했다.
알엠퀴스트 조개
과거의 CSRG BSD 릴리즈에서 사용되었던 Bourne Shell을 둘러싼 저작권 문제로 Kenneth Almquist는 Bourne Shell의 클론을 개발했습니다.이 클론은 일부에서는 Almquist 쉘로 알려져 있으며 BSD 라이선스로 사용할 수 있으며 현재 일부 BSD 후손 및 저메모리 상황에서 사용되고 있습니다.Almquist Shell은 Linux로 포팅되었으며 포트는 Debian Almquist Shell(대시)로 이름을 변경했습니다.이 셸은 표준 실행 속도를 높입니다.sh
(및 POSIX 표준)sh
(현대의 후예에서는) 스크립트에서는 메모리 설치 공간이 Bash보다 작습니다.이 사용법은 bashism을 드러내는 경향이 있습니다.즉, sh에서 실행되는 스크립트에서 bash 중심의 가정입니다.
기타 셸
- Bash(Bourne-Again 쉘)는 1989년에 GNU 프로젝트를 위해 개발되었으며 Bourne 쉘, csh 및 ksh의 기능을 통합합니다.POSIX에 준거하고 있습니다.
- rc는 버전 10 Unix의 sh를 대체하기 위해 Tom Duff에 의해 Bell Labs에서 작성되었습니다.Bell Labs의 Plan 9 기본 셸입니다.User Space에서 Plan 9의 일부로 UNIX로 이식되었습니다.
- 1990년 Paul Falstad에 의해 개발된 Z 쉘은 Bash, ksh 및 tcsh의 일부 기능을 포함하여 많은 개선사항을 가진 확장 Bourne 쉘입니다.
사용.
Bourne 쉘은 과거 BSD 기반의 시스템에서는 많은 스크립트가 csh로 작성되어 있었지만, 이전에는 모든 브랜드의 Unix 시스템에서 표준이었습니다.POSIX의 기초로서 sh
일반적으로 Bourne 쉘 스크립트는 Linux 또는 기타 Unix 계열 시스템에서 Bash 또는 대시와 함께 실행할 수 있습니다.
「 」를 참조해 주세요.
레퍼런스
- ^ https://www.bsdcan.org/2015/schedule/events/612.en.html BSDCan 2015 Stephen Bourne 기조연설
- ^ a b McIlroy, M. D. (1987). A Research Unix reader: annotated excerpts from the Programmer's Manual, 1971–1986 (PDF) (Technical report). CSTR. Bell Labs. 139.
- ^ "The A-Z of Programming Languages: Bourne shell, or sh". computerworld.com.au. Archived from the original on 11 January 2010. Retrieved 6 March 2009.
- ^ Bourne, Steve (12 January 1979). "mac.h – Macros used by Bourne to structure C like Algol68C". AT&T Corporation. Retrieved 9 September 2006.
- ^ Landon Curt Noll; Simon Cooper; Peter Seebach & Leonid A. Broukhis (2004). "The IOCCC FAQ – Q/A: How did the IOCCC get started?". ioccc.org. Retrieved 9 September 2006.
- ^ "what shell is this". www.in-ulm.de.
- ^ "traditional Bourne shell family / history and development". www.in-ulm.de.
- ^ Korn, David G. (26 October 1994), "ksh - An Extensible High Level Language", Proceedings of the USENIX 1994 Very High Level Languages Symposium, USENIX Association, retrieved 5 February 2015,
Instead of inventing a new script language, we built a form entry system by modifying the Bourne shell, adding built-in commands as necessary.
- ^ "Schily Bourne Shell - A modern enhanced and POSIX compliant Bourne Shell source maintained by Jörg Schilling". Schily-Tools.
- ^ 빌 [page needed]조이의 C 쉘 소개
- ^ Bourne, Stephen R. (October 1983). "The Unix Shell". BYTE. p. 187. Retrieved 30 January 2015.
- ^ Tom Christiansen (28 September 1995). "Csh Programming Considered Harmful". Retrieved 17 February 2014.
외부 링크
![]() | 이 섹션의 외부 링크 사용은 Wikipedia의 정책 또는 지침을 따르지 않을 수 있습니다.(2016년 8월 (이 및 ) |

- '전통 본 셸 패밀리'의 개별 멤버
- "전통 본 포탄의 특징적인 공통 특성"
- 1979년의 mac.h 매크로를 사용한 Bourne 쉘 이력 C 소스 코드
- 1978년 Bourne Shell 원본 문서
- OpenSolaris에서 다른 Unix 계열 시스템으로의 "heirloom" SVR4 Bourne 쉘 포트
- System V(SVR4) 쉘에서 POSIX 쉘로의 이행
- Bourne 쉘 튜토리얼 (구문)
- 셸의 차이점에 관한 FAQ
- Howard Dahda, 프로그래밍 언어의 A~Z: Bourne shell (sh)– 2009년 3월 5일, Bourne Shell (sh) Computerworld의 크리에이터인 Steve Bourne과의 상세한 인터뷰.