rc

rc
rc
패러다임필수, 파이프라인
설계자톰 더프
개발자벨 연구소
처음 등장한1989년; 33년 전 (2011년)
타이핑 분야약한
OS크로스 플랫폼 (Unix 버전 10, Plan 9, Plan 9 from User Space)
웹 사이트doc.cat-v.org/plan_9/4th_edition/papers/rc
사투리
바이런 RC
영향을 받다
본 셸
영향받은
에스, 지옥의 껍데기.
rc 세션

rc ('run commands'의 경우)는 Bell Labs 운영 체제의 버전 10 UnixPlan 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대신 건설하다elseBourne과 같은 것을 가지고 있습니다.forloop을 반복하여 목록에 추가합니다.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 로 더 잘 알려져 있습니다.

레퍼런스

  1. ^ a b c d Duff, Tom. Rc — The Plan 9 Shell. Plan 9, 4th edition. (PDF; 1990년판)
  2. ^ Fischer, Manfred M. (13 December 1996). Spatial Analytical Perspectives on GIS. ISBN 9780748403400.
  3. ^ "Ubuntu Manpage: es - extensible shell". Manpages.ubuntu.com. 1992-03-05. Archived from the original on 2014-02-24. Retrieved 2012-08-24.
  4. ^ "Extensible Shell". FOLDOC. Retrieved 2012-08-24.
  5. ^ "Shells Available for Linux". LUV. Retrieved 2012-08-24.
  6. ^ Jones, Tim. "Evolution of shells in Linux". IBM. Retrieved 14 March 2014.
  7. ^ "Linux Journal 12: What's GNU". Archived from the original on 2013-01-17. Retrieved 2012-08-24.
  8. ^ es: Byron Rakitzis, NetApp, Inc. 및 Adobe Systems Incorporated, Archive at Archive의 Paul Haahr가 제공하는 상위 기능을 갖춘 셸.조직.
  9. ^ [1]
  10. ^ "UNIX shell differences". Faqs.org. Retrieved 2012-08-24.
  11. ^ Haggerty, James (13 March 2020). "wryun/es-shell: a shell with higher-order functions". GitHub.

외부 링크

]