1) minishell - subject

sorikikikim·2021년 7월 30일
0

minishell

목록 보기
1/1

Mandatory part

1. 프로그램명

minishell

2. Makefile

필수

3. 전역변수

1개 사용 가능(이유 설명해야 함)

4. Libft

사용 가능

5. 외부 함수

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

6. 설명

shell을 구현하는 프로그램

7. minishell 구현 내용

  • 닫히지 않은 따옴표 또는 \ 또는;와 같은 지정되지 않은 특수 문자를 해석하지 않아야 합니다.
  • 새로운 명령어를 입력할 수 있는 프롬프트를 보여줘야 합니다.
  • working history가 있어야 합니다.
  • (PATH 변수나 상대, 절대 경로를 활용해) 올바른 실행파일을 찾고 실행할 수 있어야 합니다.
  • 내장 기능을 실행할 수 있어야 합니다:
    • ’-n’ 옵션을 활용할 수 있는 echo
    • 오직 상대, 절대 경로만 활용하는 cd
    • 아무 옵션 없이 pwd
    • 아무 옵션 없이 export
    • 아무 옵션 없이 unset
    • 아무 옵션, 인자 없이 env
    • 아무 옵션 없이 exit
  • '는 일련의 문자에 대한 모든 해석을 금지합니다.
  • "$를 제외한 일련의 문자에 대한 모든 해석을 금지합니다.
  • Redirections
    • <는 입력을 리다이렉션해야 합니다.
    • >는 출력을 리다이렉션해야 합니다.
    • <<는 구분자를 포함하는 줄이 나타날 때까지 현재 소스에서 입력을 읽습니다. 이것은 working history에 업데이트 할 필요가 없습니다.
    • >>는 출력을 추가모드로 리다이렉션해야 합니다.
  • 파이프 | 는 파이프라인에 있는 각 명령의 출력이 파이프를 통해 다음 명령의 입력에 연결됩니다.
  • 환경변수($ 뒤에 오는 문자)는 해당 값으로 확장되어야 합니다.
  • $?는 가장 최근에 실행된 직전 파이프라인의 종료 상태로 확장되어야 합니다.
  • ctrl-C, ctrl-D, ctrl-\ 는 bash와 동일한 결과를 내야 합니다.
    -
    • ctrl-C는 새로운 줄에 새로운 프롬프트를 출력합니다.
    • ctrl-D는 쉘을 종료합니다.
    • ctrl-\는 아무것도 하지 않습니다.

8. bonus

  • &&, ||, * 구현해야 합니다.

0개의 댓글