당신의 쉘은:
[ ] Not interpret unclosed quotes or unspecified special characters like \ or ;.
닫히지 않은 따옴표나 특정되지 않은 특수문자 (\나 ; 등...) 을 해석하지 않아야 합니다.
[ ] Not use more than one global variable, think about it and be ready to explain why you do it.
전역변수는 한 개 이상을 사용할 수 없으며, 왜 전역변수를 사용했는지 깊게 생각해 보고 그 이유를 설명할 수 있어야 합니다.
[ ] Show a prompt when waiting for a new command.
새로운 명령어를 입력할 수 있는 프롬프트를 보여줘야 합니다.
[ ] Have a working History.
작업 히스토리를 갖고 있어야 합니다.
[ ] Search and launch the right executable (based on the PATH variable or by using relative or absolute path)
(PATH 변수나 상대, 절대 경로를 활용하여) 올바른 실행 파일을 찾아 실행할 수 있어야 합니다.
[ ] It must implement the builtins:
다음의 내장 기능을 실행할 수 있어야 합니다:
*echo
with option n
*
n
옵션을 사용할 수 있는 echo
*cd
with only a relative or absolute path*
오직 상대 또는 절대경로만 사용하는 cd
*pwd
with no options*
옵션이 없는 pwd
*export
with no options*
옵션이 없는 export
*unset
with no options*
옵션이 없는 unset
*env
with no options or arguments*
옵션이나 인자값이 없는 env
*exit
with no options*
옵션이 없는 exit
[ ] ’ inhibit all interpretation of a sequence of characters.
'
는 일련의 문자열에 대한 해석을 금지합니다.
[ ] " inhibit all interpretation of a sequence of characters except for $.
"
는 $
를 제외한 모든 문자열에 대한 해석을 금지합니다.
[ ] Redirections:
리다이렉션:
*<
should redirect input.*
<
는 입력을 리다이렉션 하여야 합니다
*>
should redirect output.*
>
는 출력을 리다이렉션 하여야 합니다
*<<
read input from the current source until a line containing only the delimiter is seen. it doesn’t need to update history!*
<<
는 현재 소스에서 구분자를 포함한 줄을 만나기 전까지 입력값을 읽어들입니다. 기록을 업데이트할 필요는 없습니다!
*>>
should redirect output with append mode.*
>>
는 출력을 추가 모드로 리다이렉션합니다.
[ ] Pipes | The output of each command in the pipeline is connected via a pipe to the input of the next command.
파이프 |
: 각 파이프라인마다 명령어의 출력값은 파이프로 연결되어 다음 명령어의 입력값으로 들어가야 합니다.
[ ] Environment variables ($ followed by characters) should expand to their values.
환경 변수 ($ 다음에 문자열이 오는 형식) 은 그들의 값으로 확장되어야 합니다.
[ ] $? should expands to the exit status of the most recently executed foreground pipeline.
[ ] $?
는 가장 최근에 실행한 포그라운드 파이프라인의 종료 상태를 확장하여야 합니다
[ ] *ctrl-C, ctrl-D and ctrl-\\
should have the same result as in bash.*
ctrl-C
, ctrl-D
, ctrl-\\
는 bash와 동일하게 동작하여야 합니다.
[ ] When interactive:
상호작용이 가능할 때:
*ctrl-C
print a new prompt on a newline.*
ctrl-C
는 새로운 줄에 새로운 프롬프트를 출력합니다
*ctrl-D
exit the shell.*
ctrl-D
는 쉘을 종료합니다.
*ctrl-\\
do nothing.*
ctrl-\\
은 아무런 동작도 하지 않습니다.