06 - Shell 스 크 립 트 학습 - 기타
유 닉 스 명령 은 기본적으로 표준 입력 장치 (stdin) 에서 입력 을 가 져 오고 결 과 를 표준 출력 장치 (stdout) 에 출력 합 니 다.일반적인 상황 에서 표준 입력 장 치 는 키보드 이 고 표준 출력 장 치 는 단말기, 즉 모니터 이다.출력 방향 변경
명령 의 출력 은 모니터 뿐만 아니 라 파일 로 쉽게 옮 길 수 있 는데 이것 은 출력 리 셋 방향 이 라 고 불 린 다.
명령 출력 에서 방향 을 바 꾸 는 문법 은 다음 과 같 습 니 다.
command > file
이렇게 하면 모니터 에 출력 된 내용 을 파일 로 바 꿀 수 있다.
예 를 들 어 아래 명령 은 모니터 에서 출력 을 볼 수 없습니다.
who > users
users 파일 을 열 면 아래 내용 을 볼 수 있 습 니 다.
cat users
oko tty01 Sep 12 07:30
ai tty15 Sep 12 13:32
ruth tty21 Sep 12 10:10
pat tty24 Sep 12 13:07
steve tty25 Sep 12 13:03
출력 방향 을 바 꾸 면 파일 내용 을 덮어 씁 니 다. 다음 예 를 보십시오.
echo line 1 > users
cat users
line 1
파일 내용 이 덮어 쓰 기 를 원 하지 않 으 면
>>
파일 끝 에 추가 할 수 있 습 니 다. 예 를 들 어:echo line 2 >> users
cat users
line 1
line 2
입력
출력 재 설정 과 마찬가지 로 유 닉 스 명령 도 파일 에서 입력 을 가 져 올 수 있 습 니 다. 문법 은 다음 과 같 습 니 다.
command < file
이렇게 하면 키보드 에서 입력 을 가 져 와 야 하 는 명령 이 파일 로 옮 겨 져 내용 을 읽 습 니 다.
메모: 출력 재 설정 은 번호 (>) 보다 크 고 입력 재 설정 은 번호 (<) 보다 작 습 니 다.
예 를 들 어 users 파일 의 줄 수 를 계산 할 때 다음 명령 을 사용 할 수 있 습 니 다.
wc -l users
2 users
users 파일 로 입력 을 바 꿀 수도 있 습 니 다:
wc -l < users
2
메모: 위의 두 가지 예 는 결과 가 다 릅 니 다. 첫 번 째 예 는 파일 이름 을 출력 합 니 다.두 번 째 는 표준 입력 에서 내용 을 읽 는 것 만 알 기 때문에 할 수 없다.
방향 을 바 꾸 어 심도 있 게 설명 하 다.
일반적으로 유 닉 스/리 눅 스 명령 이 실 행 될 때마다 세 개의 파일 을 엽 니 다.
기본 적 인 상황 에서
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
stdin 과 stdout 에 대한 방향 을 바 꾸 려 면 이렇게 쓸 수 있 습 니 다.
command < file1 >file2
command 명령 은 stdin 을 file 1 로 재 설정 하고 stdout 을 file 2 로 재 설정 합 니 다.
모든 사용 가능 한 리 셋 명령 목록:
命令 说明
command > file 将输出重定向到 file。
command < file 将输入重定向到 file。
command >> file 将输出以追加的方式重定向到 file。
n > file 将文件描述符为 n 的文件重定向到 file。
n >> file 将文件描述符为 n 的文件以追加的方式重定向到 file。
n >& m 将输出文件 m 和 n 合并。
n <& m 将输入文件 m 和 n 合并。
<< tag 将开始标记 tag 和结束标记 tag 之间的内容作为输入。
Here Document
Here Document 는 현재 통 일 된 번역 이 없 으 며, 여 기 는 잠시
嵌入文档
로 번역 되 었 다.Here Document 는 Shell 의 특수 한 방향 재 설정 방식 으로 기본 적 인 형식 은 다음 과 같다.command << delimiter
document
delimiter
두 delimiter 사이 의 내용 (document) 을 입력 으로 command 에 전달 하 는 역할 을 합 니 다.
메모: 끝 에 있 는 delimiter 는 반드시 대문자 로 써 야 합 니 다. 앞 에 문자 가 있 으 면 안 됩 니 다. 뒤에 도 빈 칸 과 tab 들 여 쓰기 가 포함 되 어 있 으 면 안 됩 니 다.
시작 한 delimiter 앞 뒤의 빈 칸 은 무시 된다.
다음 예 는
wc -l
명령 을 통 해 document 의 줄 수 를 계산 합 니 다.wc -l << EOF
This is a simple lookup program
for good (and bad) restaurants
in Cape Town.
EOF
출력: 3
Here Document 를 스 크 립 트 에 사용 할 수도 있 습 니 다. 예 를 들 어:
#!/bin/bash
cat << EOF
This is a simple lookup program
for good (and bad) restaurants
in Cape Town.
EOF
실행 결과:
This is a simple lookup program
for good (and bad) restaurants
in Cape Town.
/dev/null 파일
명령 을 실행 하 기 를 원 하지만 화면 에 출력 결 과 를 표시 하지 않 으 려 면 출력 을 다시 설정 할 수 있 습 니 다
/dev/null
.command > /dev/null
/dev/null
특수 한 파일 로 그 내용 을 쓰 면 버 려 집 니 다.이 파일 에서 내용 을 읽 으 려 고 시도 하면 아무것도 읽 을 수 없습니다.그러나 /dev/null
파일 은 매우 유용 합 니 다. 명령 의 출력 을 다시 지정 하면 禁止输出
효 과 를 낼 수 있 습 니 다.stdout 과 stderr 를 차단 하려 면 이렇게 쓸 수 있 습 니 다:
command > /dev/null 2>&1
이렇게 하면 화면 에 어떤 정보 도 인쇄 하지 않 습 니 다.
셸 파일 포함
다른 언어 와 마찬가지 로 셸 도 외부 스 크 립 트 를 포함 하여 현재 스 크 립 트 에 외부 스 크 립 트 의 내용 을 통합 할 수 있 습 니 다.
Shell 에 스 크 립 트 가 포함 되 어 있 습 니 다
. filename
또는 source filename
.두 가지 방식 의 효 과 는 같 습 니 다. 간단하게 볼 때 보통 점 (.) 을 사용 하지만 점 (.) 과 파일 이름 사이 에 빈 칸 이 있 습 니 다.
예제: 포 함 된 파일: sub. sh
name="yjc"
주 파일: test. sh
. ./sub.sh
echo $name
실행 결과:
yjc
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.