리다이렉션은 표준 스트림을 사용자가 지정한 위치로 우회할 수 있는 명령입니다.
간단하게 예를 들면
echo 42seoul > text.txt
echo
를 사용해서 42seoul 출력하는 대신에 출력할 문자열을 text.txt에 저장한다는 말입니다.
이런 식으로 원래 입력 및 출력을 사용자가 지정한 곳으로 바꾸는 것을 리다이렉션이라고 합니다.
표준 출력을 리다이렉션 합니다.
> echo 42seoul > text.txt
> cat text.txt
42seoul
이렇게 하면 text.txt라는 파일의 내용은 echo의 출력인 42seoul로 덮어씌워지게 됩니다.
기존 파일을 지우지 않고 text.txt 파일 내용 뒤에 이어서 씁니다.
> cat text.txt
42seoul
> echo hello >> text.txt
> cat text.txt
42seoul
hello
이렇게 기존 내용이 지워지지 않고 기존 내용 뒤에 이어서 씁니다.
표준 입력을 리다이렉션 합니다.
> cat < text.txt
42seoul
hello
echo 명령어는 표준입력을 받지 않기 때문에 cat 명령어로 확인해 보면 위 내용과 같이 표준입력을 파일에서 받을 수 있습니다.
here document는 원하는 모든 문자(공백, 개행 등)를 포함시켜 사용할 수 있도록 만들어진 명령입니다.
> cat << end
> 1
> 2
> 3
> 4
> 5
> end
1
2
3
4
5
이렇게 end를 종료시그널로 지정하면 공백도 무엇도 포함하지 않고 온전히 "end"만 있는 입력이 들어올때까지 입력을 받습니다.
[minishell] 사용가능 함수 정리
[minishell]리다이렉션 및 here doc정리
[minishell]dup정리