minishell
필수
1개 사용 가능(이유 설명해야 함)
사용 가능
readline, rl_on_new_line, rl_replace_line, rl_redisplay,
add_history, printf, malloc, free, write, open, read, close,
fork, wait, waitpid, wait3, wait4, signal, kill, exit,
getcwd, chdir, stat, lstat, fstat, unlink, execve, dup, dup2,
pipe, opendir, readdir, closedir, strerror, errno,
isatty, ttyname, ttyslot, ioctl, getenv, tcsetattr, tcgetattr,
tgetent, tgetflag, tgetnum, tgetstr, tgoto, tputs
shell을 구현하는 프로그램
닫히지 않은 따옴표
또는 \
또는;
와 같은 지정되지 않은 특수 문자를 해석하지 않아야 합니다.working history
가 있어야 합니다.echo
cd
pwd
export
unset
env
exit
'
는 일련의 문자에 대한 모든 해석을 금지합니다."
는 $
를 제외한 일련의 문자에 대한 모든 해석을 금지합니다.<
는 입력을 리다이렉션해야 합니다.>
는 출력을 리다이렉션해야 합니다.<<
는 구분자를 포함하는 줄이 나타날 때까지 현재 소스에서 입력을 읽습니다. 이것은 working history에 업데이트 할 필요가 없습니다.>>
는 출력을 추가모드로 리다이렉션해야 합니다.|
는 파이프라인에 있는 각 명령의 출력이 파이프를 통해 다음 명령의 입력에 연결됩니다.$
뒤에 오는 문자)는 해당 값으로 확장되어야 합니다.$?
는 가장 최근에 실행된 직전 파이프라인의 종료 상태로 확장되어야 합니다.ctrl-C
, ctrl-D
, ctrl-\
는 bash와 동일한 결과를 내야 합니다.ctrl-C
는 새로운 줄에 새로운 프롬프트를 출력합니다.ctrl-D
는 쉘을 종료합니다.ctrl-\
는 아무것도 하지 않습니다.&&
, ||
, *
구현해야 합니다.