14. Shell 입 출력 재 설정
command > file file。
command < file file。
command >> file file。
n > file n file。
n >> file n file。
n >& m m n 。
n
출력 방향 변경
방향 을 바 꾸 는 것 은 일반적으로 명령 사이 에 특정한 기 호 를 삽입 해서 이 루어 진다.특히 이런 기호의 문법 은 다음 과 같다.
command1 > file1
이 명령 은 command 1 을 실행 하고 출력 한 내용 을 file 1 에 저장 합 니 다.파일 1 에 존재 하 는 모든 내용 이 새로운 내용 으로 대 체 될 것 임 을 주의 하 십시오.새 내용 을 파일 끝 에 추가 하려 면 >> 연산 자 를 사용 하 십시오.
실례
다음 who 명령 을 실행 합 니 다. 명령 의 전체 출력 을 사용자 파일 로 바 꿉 니 다 (users).
$ who > users
실행 후 터미널 에서 정 보 를 출력 하지 않 았 습 니 다. 이것 은 출력 이 기본 표준 출력 장치 (터미널) 에서 지정 한 파일 로 바 뀌 었 기 때 문 입 니 다.cat 명령 으로 파일 내용 을 볼 수 있 습 니 다. (cat 명령 은 파일 을 연결 하고 표준 출력 장치 에 인쇄 하 는 데 사 용 됩 니 다.)
$ cat users
_mbsetupuser console Oct 31 17:35
tianqixin console Oct 31 17:35
tianqixin ttys000 Dec 1 11:33
입력
출력 재 설정 과 마찬가지 로 유 닉 스 명령 도 파일 에서 입력 을 가 져 올 수 있 습 니 다. 문법 은 다음 과 같 습 니 다.
command1 < file1
이렇게 하면 키보드 에서 입력 을 가 져 와 야 하 는 명령 이 파일 로 옮 겨 져 내용 을 읽 습 니 다.메모: 출력 재 설정 은 번호 (>) 보다 크 고 입력 재 설정 은 번호 보다 작 습 니 다 (
실례
이 어 위의 인 스 턴 스 를 통 해 users 파일 의 줄 수 를 집계 하고 다음 명령 을 실행 해 야 합 니 다. (Linux wc 명령 은 글자 수 를 계산 하 는 데 사 용 됩 니 다. wc 명령 을 이용 하여 파일 의 Byte 수, 글자 수, 열 수 를 계산 할 수 있 습 니 다. 파일 이름 을 지정 하지 않 거나 주어진 파일 이름 이 "-"이면 wc 명령 은 표준 입력 장치 에서 데 이 터 를 읽 습 니 다.)
$ wc -l users
2 users
users 파일 로 입력 을 바 꿀 수도 있 습 니 다:
$ wc -l < users
2
메모: 위의 두 가지 예 는 결과 가 다 릅 니 다. 첫 번 째 예 는 파일 이름 을 출력 합 니 다. 두 번 째 예 는 표준 입력 에서 내용 을 읽 는 것 만 알 기 때 문 입 니 다.
command1 < infile > outfile
입력 과 출력 을 동시에 바 꾸 고 command 1 을 실행 하 며 파일 infile 에서 내용 을 읽 은 다음 출력 을 outfile 에 기록 합 니 다.
방향 을 바 꾸 어 심도 있 게 설명 하 다.
일반적으로 유 닉 스/리 눅 스 명령 이 실 행 될 때마다 세 개의 파일 을 엽 니 다. • 표준 입력 파일 (stdin): stdin 의 파일 설명 자 는 0 이 고, 유 닉 스 프로그램 은 기본적으로 stdin 에서 데 이 터 를 읽 습 니 다. • 표준 출력 파일 (stdout): stdout 의 파일 설명 자 는 1 이 며, 유 닉 스 프로그램 은 기본적으로 stdout 에 데 이 터 를 출력 합 니 다. • 표준 오류 파일 (stderr): stderr 의 파일 설명 자 는 2 이 며, 유 닉 스 프로그램 은 stderr 흐름 에 잘못된 정 보 를 기록 합 니 다.
기본적으로 command > file 은 stdout 을 file 로, command < file 은 stdin 을 file 로 재 설정 합 니 다. stderr 를 file 로 재 설정 하려 면 이렇게 쓸 수 있 습 니 다.
$ command 2 > file
stderr 가 file 파일 의 끝 에 추가 되 기 를 원한 다 면 이렇게 쓸 수 있 습 니 다.
$ command 2 >> file
2 표준 오류 파일 (stderr) 을 표시 합 니 다. stdout 과 stderr 를 합 친 후 file 로 다시 설정 하려 면 이렇게 쓸 수 있 습 니 다.
$ command > file 2>&1
$ command >> file 2>&1
이 & 는 > 뒤에 고정 적 인 의미 가 없 는 &, 재 설정 대상 은 파일 이 아니 라 파일 설명자 입 니 다. 다시 말 하면 2 > 1 은 stderr 를 현재 경로 에서 파일 이름 이 1 인 regular file 로 재 설정 하 는 것 을 의미 하 며, 2 > & 1 은 stderr 를 파일 설명자 가 1 인 파일 (즉/dev/stdout) 로 재 설정 하 는 것 을 의미 합 니 다.이 파일 은 stdout 이 file system 에서 비 치 는 것 입 니 다. & > file 은 특수 한 용법 입 니 다. > & file 로 쓸 수도 있 습 니 다. 두 사람의 뜻 은 똑 같 습 니 다. 모두 등가 입 니 다.
>file 2>&1
여기 & > 또는 > & 를 전체 로 보고 분리 하 는 것 은 단독 적 인 의미 가 없다.
stdin 과 stdout 에 대한 방향 을 바 꾸 려 면 이렇게 쓸 수 있 습 니 다.
$ command < file1 >file2
command 명령 은 stdin 을 file 1 로 재 설정 하고 stdout 을 file 2 로 재 설정 합 니 다.
Here Document
Here Document 는 Shell 에서 입력 을 대화 식 Shell 스 크 립 트 나 프로그램 으로 재 설정 하 는 특수 한 재 설정 방식 입 니 다. 기본 적 인 형식 은 다음 과 같 습 니 다.
command << delimiter
document
delimiter
두 delimiter 사이 의 내용 (document) 을 입력 으로 command 에 전달 하 는 역할 을 합 니 다. 주의: • 끝 에 있 는 delimiter 는 반드시 대문자 로 써 야 합 니 다. 앞 에 문자 가 있어 서 는 안 되 며, 뒤에 도 빈 칸 과 tab 들 여 쓰기 가 포함 되 어 서 는 안 됩 니 다. • 시 작 된 delimiter 앞 뒤의 빈 칸 은 무시 합 니 다.
실례
명령 행 에서 wc - l 명령 을 통 해 Here Document 의 줄 수 를 계산 합 니 다:
$ wc -l << EOF
www.runoob.com
EOF
3 # 3
우리 도 Here Document 를 스 크 립 트 에 사용 할 수 있 습 니 다. 예 를 들 어:
#!/bin/bash
cat << EOF
www.runoob.com
EOF
이상 스 크 립 트 를 실행 하고 출력 결과:
www.runoob.com
/dev/null 파일
명령 을 실행 하고 싶 지만 화면 에 출력 결 과 를 표시 하지 않 으 려 면 출력 을/dev/null 로 바 꿀 수 있 습 니 다.
$ command > /dev/null
/dev/null 은 특별한 파일 입 니 다. 기록 한 내용 은 모두 버 려 집 니 다. 이 파일 에서 내용 을 읽 으 려 고 시도 하면 아무것도 읽 을 수 없습니다. 그러나/dev/null 파일 은 매우 유용 합 니 다. 명령 의 출력 을 다시 지정 하면 '출력 금지' 효과 가 있 습 니 다. stdout 과 stderr 를 차단 하려 면 이렇게 쓸 수 있 습 니 다.
$ command > /dev/null 2>&1
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.