12. Shell 편 - 파이프 와 방향 변경

머리말
파이프: 프로 세 스 통신 의 통신 도구 재 설정: 프로그램 결 과 를 파일 로 출력 할 수도 있 고 키보드 대신 파일 을 입력 할 수도 있 습 니 다.
파이프 와 파이프 문자
파 이 프 는 신호 와 마찬가지 로 프로 세 스 통신 방식 중 하나 입 니 다. 익명 파이프 (파이프라인 문자) 는 Shell 프로 그래 밍 에 자주 사용 되 는 통신 도구 파이프 문자 입 니 다. "|"이전 명령 이 실 행 된 결 과 를 다음 명령 에 전달 합 니 다.
  • ps | cat

  • (1) 첫 번 째 명령 의 출력 을 두 번 째 명령 의 입력 으로 한다.
    user1@SC02ZRC4KMD6N Git % ls -l | more

    (2) cat 와 ps 는 모두 외부 명령 입 니 다. 파이프 부 호 는 이 두 명령 에 하위 프로 세 스 를 만 듭 니 다. (ps 명령 이 실행 되 었 기 때문에 프로 세 스 이름 이 보이 지 않 습 니 다) 외부 명령 은 하위 프로 세 스 로 실 행 됩 니 다.내장 명령 실행 과정 은 부모 프로 세 스에 전달 되 지 않 기 때문에 파이프 부 호 를 사용 할 때 내장 명령 을 사용 하 는 것 을 피해 야 합 니 다.
    user1@SC02ZRC4KMD6N Git % cat | ps -f
      UID   PID  PPID   C STIME   TTY           TIME CMD
      501   965   964   0 10:18   ttys000    0:00.07 -zsh
      501  1008   965   0 10:34   ttys000    0:00.00 cat

    리 셋 기호
    하나의 프로 세 스 는 기본적으로 표준 입력, 표준 출력, 오류 출력 세 개의 파일 설명자 입력 리 셋 기 호 를 엽 니 다. "eg: readvar ","> ","2 > ","& "eg: echo 123 >/path/to/a/file 입 출력 리 셋 조합 은 cat >/path/to/a/file < I am $USER EOF 를 사용 합 니 다.
    (1) 재 설정 입력 - a. txt 파일 의 줄 수 통계
    user1@SC02ZRC4KMD6N test % wc -l < a.txt
           3

    (2) 재 설정 입력 - 파일 내용 을 변수 에 할당 합 니 다.
    user1@SC02ZRC4KMD6N test % read var < a.txt
    user1@SC02ZRC4KMD6N test % echo $var
    11

    (3) 출력 재 설정 - 파일 에 내용 을 출력 하면 원본 파일 의 내용 이 비 워 집 니 다.
    user1@SC02ZRC4KMD6N test % echo $var >b.txt
    user1@SC02ZRC4KMD6N test % cat b.txt
    11

    (4) 출력 재 설정 - 파일 에 내용 을 출력 하면 원본 파일 의 내용 이 비 워 지지 않 습 니 다.
    user1@SC02ZRC4KMD6N test % echo $var >>b.txt 
    user1@SC02ZRC4KMD6N test % cat b.txt        
    11
    11

    (5) 오류 재 설정 - 오류 가 있 을 때 터미널 에 인쇄 하지 않 고 오류 정 보 를 파일 에 출력 합 니 다.
    user1@SC02ZRC4KMD6N test % nocmd
    zsh: command not found: nocmd
    user1@SC02ZRC4KMD6N test % nocmd 2> c.txt
    user1@SC02ZRC4KMD6N test % cat c.txt
    zsh: command not found: nocmd

    (6) 정확 하 든 실패 하 든 결 과 를 파일 에 출력 한다.
    #     ,         
    user1@SC02ZRC4KMD6N test % nocmd &> d.txt
    user1@SC02ZRC4KMD6N test % cat d.txt
    zsh: command not found: nocmd
    #     ,         
    user1@SC02ZRC4KMD6N test % ls  &> d.txt
    user1@SC02ZRC4KMD6N test % cat d.txt   
    a.txt
    b.txt
    c.txt
    d.txt

    (7) 입 출력 리 셋 결합 사용 - 보통 셸 스 크 립 트 는. sh 파일 에서 e. txt 를 만 드 는 데 사 용 됩 니 다.
    user1@SC02ZRC4KMD6N test % cat aa.sh
    #!/bin/bash
    cat > e.txt <

    좋은 웹페이지 즐겨찾기