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