rc
rc패러다임 | 필수, 파이프라인 |
---|---|
설계자 | 톰 더프 |
개발자 | 벨 연구소 |
처음 등장한 | 전 ( |
타이핑 분야 | 약한 |
OS | 크로스 플랫폼 (Unix 버전 10, Plan 9, Plan 9 from User Space) |
웹 사이트 | doc |
사투리 | |
바이런 RC | |
영향을 받다 | |
본 셸 | |
영향받은 | |
에스, 지옥의 껍데기. |
rc ('run commands'의 경우)는 Bell Labs 운영 체제의 버전 10 Unix 및 Plan 9 명령줄 인터프리터입니다.Bourne 쉘과 비슷하지만 구문은 다소 단순합니다.이것은 특이한 C 프로그래밍 언어 구조("Duff'[1]s Device")로 더 잘 알려진 Tom Duff에 의해 만들어졌습니다.
원래 rc에서 Unix로의 포트는 User Space에서 Plan 9의 일부입니다.Byron Rakitzis의 Unix 계열 운영체제용 rc 개서도 가능하지만 호환되지 않는 변경사항이 포함되어 있습니다.
Rc는 원래 Bourne 쉘의 ALGOL과 같은 구조 대신 C와 같은 제어 구조를 사용합니다.단, Rc가 사용하는 것은if not
대신 건설하다else
Bourne과 같은 것을 가지고 있습니다.for
loop을 반복하여 목록에 추가합니다.rc에서 모든 변수는 문자열 리스트이므로 "와 같은 구문이 필요하지 않습니다.$@
". 변수를 확장해도 다시 분할되지 않습니다.그 언어는 더프의 [1]논문에 설명되어 있다.
영향
es
es ('확장 가능 셸'의 경우)는 Rakitzis와 Paul Haahr에[2] 의해 개발된 오픈소스 명령줄 인터프리터이며 rc [3][4]쉘의 영향을 받은 스크립트 언어 구문을 사용합니다.원래는 [5][6]Byron Rakitzis의 Unix용 rc 복제 코드를 기반으로 했습니다.
확장 가능한 셸은 Unix [7]쉘로서 완전히 기능하는 프로그래밍 언어를 제공하기 위한 것입니다.새로운 데이터 타입으로서 「프로그램 fragment」를 대괄호로 묶고, 어휘 스코핑(via let)을 도입해, 한층 더 사소한 개선을 실시합니다.es 개발의 대부분은 1990년대 초 샌디에이고에서 [8]열린 USENIX 회의에서 셸이 소개된 후 1997년 [9]0.9-beta-1 이후 공식 릴리스가 중단된 것으로 보이며 zsh 및 [10]bash와 같은 더 인기 있는 셸에 비해 기능이 부족한 것으로 보인다.퍼블릭 도메인 포크es
는 2019년 [11]현재 활성화 되어 있습니다.
예
Bourne 쉘 스크립트:
[$1" = "hello"; 에코 hello, 그 후 echo hello, 그 이외의 경우 $2는 $# "hey" "jude" $3; 2) 에코 "date" :$*:"$@; *) 에코 "date" :"$@"; *) 에코 "1 >&2 esac for i in a b c; echo $i fi fi fi";
rc는 다음과 같이 표시됩니다.
if(~ $1 hello) 에코 hello, world({ switchsweat2}가 아닌 경우) {case 1 에코 $#* 'hey' 'jude'^$3 케이스 2 에코 '{date} :$*:: case * 에코가 왜 안 되는가 (i in a c) 에코 $i }에 대해 > [1=2] }
Rc는 또한 보다 동적인 배관을 지원합니다.
a [2] b # 파이프만의 a to b 표준 에러: Bourne[1]: Advanced I/O Redirection 쉘 a <> b #의 "3>&2 2>&1>&3 b"에 상당하며, 파일 b를 A의 표준 입력으로 열고 표준 출력 a <{b} <{c} #가 b의 {standard output of b} {standard output}이 됩니다. '프로세스 대체'[1]: Pipeline Branching 로 더 잘 알려져 있습니다.
레퍼런스
- ^ a b c d Duff, Tom. Rc — The Plan 9 Shell. Plan 9, 4th edition. (PDF; 1990년판)
- ^ Fischer, Manfred M. (13 December 1996). Spatial Analytical Perspectives on GIS. ISBN 9780748403400.
- ^ "Ubuntu Manpage: es - extensible shell". Manpages.ubuntu.com. 1992-03-05. Archived from the original on 2014-02-24. Retrieved 2012-08-24.
- ^ "Extensible Shell". FOLDOC. Retrieved 2012-08-24.
- ^ "Shells Available for Linux". LUV. Retrieved 2012-08-24.
- ^ Jones, Tim. "Evolution of shells in Linux". IBM. Retrieved 14 March 2014.
- ^ "Linux Journal 12: What's GNU". Archived from the original on 2013-01-17. Retrieved 2012-08-24.
- ^ es: Byron Rakitzis, NetApp, Inc. 및 Adobe Systems Incorporated, Archive at Archive의 Paul Haahr가 제공하는 상위 기능을 갖춘 셸.조직.
- ^ [1]
- ^ "UNIX shell differences". Faqs.org. Retrieved 2012-08-24.
- ^ Haggerty, James (13 March 2020). "wryun/es-shell: a shell with higher-order functions". GitHub.
외부 링크
- - Plan 9 매뉴얼 페이지
- User Space의 Plan 9 - Linux, Mac OS X 및 기타 Unix 유사 시스템용 rc 및 기타 Plan 9 도구가 포함되어 있습니다.
- Byron Rakitzis의 Unix용 개서(Wayback Machine에서 2013-10-05 기사 아카이브)
- es 공식 웹사이트
]