프로젝트 소개

이번 프로젝트는 UNIX 메커니즘을 프로그래밍하여 학습하는 것에 목표를 둔다.

프로젝트 지침

프로젝트 목표

다음과 같은 작업을 하는 프로그램을 작성하라.

./pipex file1 cmd1 cmd2 file2

위의 명령어는 아래의 명령어와 같은 작업을 해야 한다.

< file1 cmd1 | cmd2 > file2

Examples

./pipex infile ``ls -l'' ``wc -l'' outfile

# 위의 명령어는 아래의 명령어와 같은 작업을 해야 한다.

< infile ls -l | wc -l > outfile
./pipex infile ``grep a1'' ``wc -w'' outfile

# 위의 명령어는 아래의 명령어와 같은 작업을 해야 한다.

< infile grep a1 | wc -w > outfile

<aside> 💡 ```ls -l''"ls -l"` 은 같은 것이 아니다!

''` 를 `" "` 로 해석할 수 있다. 6비트 문자 코드를 쓰던 시절에는 인용 열고 닫기, apostrophe, 강세 표기 등 모두 같은 문자 하나로 표기했다. 그러다 ASCII 가 도입되면서 `'` 와 둘 다 쓸 수 있게 되었고, 인용 열기와 닫기를 구분하게 되었다. 유닉스 man page 에 남아 있는 ```foobar''` 등과 같은 인용 표기는 당시의 흔적이다.

또한 backtick()백틱과 single quotation(')작은따옴표 안의 문자열은 shell` 에서 어떠한 명령어의 기능을 수행하지 못한다.

</aside>

echo $SHELL
# /bin/zsh

echo "$SHELL"
# /bin/zsh

echo '$SHELL'
# 아무 것도 출력되지 않음

echo `$SHELL`
# 아무 것도 출력되지 않음

echo ``$SHELL''
# 아무 것도 출력되지 않음

프로젝트 보너스