리다이렉션: 두 판 사이의 차이

내용 삭제됨 내용 추가됨
잔글 revert edits by 223.62.204.238
TedBot (토론 | 기여)
잔글 봇: 틀 이름 및 스타일 정리
7번째 줄:
리다이렉션은 특정한 [[낱말 분석|문자열들]]을 [[명령어 (컴퓨팅)|명령어]] 사이에 두어서 추가되는 것이 보통이다. 일반적으로, 이러한 문자열들의 [[통사론|문법]]은 다음과 같다:
 
<sourcesyntaxhighlight lang="bash">
명령어1 > 파일1
</syntaxhighlight>
</source>
 
위의 줄은 <code>명령어1</code>을 실행하며 이로써 나오는 출력물을 <code>파일1</code>로 내보낸다. 기존에 파일1의 존재하는 경우 기존의 파일 내용은 지우고 새롭게 추가된다.
15번째 줄:
파일의 끝에 출력물을 추가하려면 >> 연산자를 이용한다:
 
<sourcesyntaxhighlight lang="bash">
명령어1 >> 파일1
</syntaxhighlight>
</source>
 
다음을 이용하면
 
<sourcesyntaxhighlight lang="bash">
명령어1 < 파일1
</syntaxhighlight>
</source>
 
<code>명령어1</code>을 실행하되, <code>파일1</code>이 입력의 대상이 된다. ([[컴퓨터 자판|자판]]을 이용하는 것과는 반대로)
 
<sourcesyntaxhighlight lang="bash">
명령어1 < 들어오는파일 > 나가는파일
</syntaxhighlight>
</source>
 
위의 줄은 두 개의 기능을 수행한다: <code>명령어1</code>은 <code>들어오는파일</code>에서 내용을 불러들인 뒤 <code>나가는파일</code>에 기록한다.
37번째 줄:
특정 프로그램이 명시적인 중간 파일이 없더라도, 다른 프로그램의 출력을 읽게 하여 프로그램을 실행할 수 있다.
 
<sourcesyntaxhighlight lang="bash">
명령어1 | 명령어2
</syntaxhighlight>
</source>
 
위의 줄은 <code>명령어1</code>을 실행하되, <code>명령어2</code>에 대한 입력으로서 출력을 사용한다.
45번째 줄:
아래의 줄은 두 개의 리다이렉션과 임시 파일을 사용하여 동일한 결과를 얻는다:
 
<sourcesyntaxhighlight lang="bash">
명령어1 > 임시파일
명령어2 < 임시파일
rm 임시파일
</syntaxhighlight>
</source>
 
하지만 여기서 <code>명령어2</code>는 <code>명령어1</code>을 마칠 때까지 실행하지 않으며, 중간 결과물뿐 아니라 각 작업에 요구되는 작업 공간을 보유하기 위해 충분히 큰 스크래치 파일이 필요하다. 이를테면, 도스는 파이프 문법을 인식하지만 이러한 이차적 접근을 이용한다.
55번째 줄:
명령어 파이프 처리에 대한 좋은 예로, <code>echo</code>를 다른 명령어와 결합하여 비상호적인 셸에서 상호적인 일을 수행하는 것이다. 이를테면 다음과 같다.
 
<sourcesyntaxhighlight lang="bash">
echo -e "user\npass" | ftp localhost
</syntaxhighlight>
</source>
 
위 줄에서 \n은 리턴을 의미한다. 이는 입력 <code>user</code>를 받아 [[파일 전송 프로토콜|ftp]] 클라이언트를 실행하고, Enter 키를 누르고 <code>pass</code>를 입력하는 식이다.
 
도스 환경에서는 format 명령어로 특정 드라이브를 포맷하려면 사용자의 동의를 위해 키보드 입력 Y를 받아야 한다. 다만 다음의 줄을 이용하면
<sourcesyntaxhighlight lang="dos">
echo y | format c: /q
</syntaxhighlight>
</source>
사용자의 동의를 구하지 않고(컴퓨터 자판의 Y를 누르지 않고도) 셸이 직접 Y를 누르게끔 하여 C 드라이브를 빠른 포맷으로 포맷할 수 있다.
 
85번째 줄:
이를테면:
 
<sourcesyntaxhighlight lang="bash">
명령어1 2> 파일1
</syntaxhighlight>
</source>
 
위의 줄은 <code>명령어1</code>을 실행하되, [[표준 스트림#표준 오류 (stderr)|표준 오류]] 스트림을 <code>파일1</code>로 리다이렉션 처리한다.