Bash-like shell 구현하기
참고 문헌: Bash Reference Manual
- Searching for Commands in the History
- 상대 경로, 절대 경로를 기반으로 검색하고 실행해야 한다.
- built-in 함수: echo -n, cd, pwd, export, unset, env, exit, redirections, pipelines 등
- $?을 검색했을 때, 최근 실행된 프로세스의 종료 상태가 출력된다.
- shell에서 SIGINT(ctrl-c), EOF(ctrl-D), SIGQUIT(ctrl-\)가 작동되어야 한다.
make
./minishell
make로 Makefile을 실행하여 C언어 파일을 컴파일하고, minishell을 실행한다.
minishell 내부에서 Bash 명령어를 실행한다.
- Redirecting Input
- Redirecting Output
- Here Documents
아래의 그림은, Redirecting ouput과 Here Documents 명령어 실행 화면 입니다.
Redirecting output과 Redirecting input 명령어 실행 화면 입니다.
sleep 5 | sleep 3
아래의 그림을 통해 pipelines를 통해 2개의 프로세스가 병렬적으로 실행되었다는 것을 알 수 있습니다.
echo, cd, pwd, ls의 명령어가 정확히 동작하는 것을 알 수 있습니다.
export를 통해 환경 변수를 등록하고, unset을 통해 등록된 변수를 해제합니다.
이를 env 명령어로 확인할 수 있습니다.
export로 환경 변수를 등록합니다.
unset으로 등록된 환경 변수를 제거합니다.
$?을 통해 종료 상태를 확인할 수 있습니다.