- 미니쉘은 …
- 새 명령어를 기다릴 때
prompt
를 보여줘야 한다.
- working
history
를 가지고 있어야 한다.
- 올바른 실행파일을 찾아서 실행해야 한다.(
PATH
변수를 기반으로 혹은 절대, 상대경로를 사용하여)
- 전역 변수는 사용하면 안 된다.
- 닫히지 않은 따옴표나 \나 ; 같은 문제에서 요구하지 않는 특수문자는 방해하지 않는다, 원본 쉘처럼 생각하면됨
'
를 쓰면 인용구 안의 메타 문자들을 쉘이 해석하면 안된다.
"
를 쓰면 $를 제외한 다른 메타 문자를 쉘이 해석하면 안된다.
redirection
을 구현해라
<
는 입력을 리다이렉트 해야 한다.
>
는 출력을 리다이렉트 해야 한다.
<<
는 구분 기호를 지정한 다음 다음 입력을 포함하는 줄까지 읽는다. 기록을 업데이트할 필요는 없다.
>>
는 출력을 append
모드로 리다이렉션한다.
pipe( | )
를 구현하라. 파이프 라인 안의 각각의 명령어는 파이프로 다음 명령의 입력으로 연결된다.
환경 변수
를 다룰 수 있어야 한다.($ 뒤의 문자열)
ctrl-C
ctrl-D
ctrl-\\
는 bash와 같게 행동해야 한다.
- 상호 작용 모드
ctrl-C
는 새로운 줄에 새로운 프롬프트를 출력한다.
ctrl-D
는 쉘을 종료한다.
ctrl-\\
는 아무 동작도 하지 않는다.