셸 출력 리디렉션,분석 > /dev/null 2>1&

우리가 일반적으로 작성하는 프로그램처럼,프로그램은 외부 입력을 처리합니다.,그런 다음 지정된 위치에 작업 결과를 출력합니다.。

인터랙티브 프로그램에서,사용자의 키보드와 마우스 입력,결과는 사용자 화면에 출력됩니다.,재생 장치에서도。

백그라운드에서 실행되는 일부 프로그램의 경우,입력은 일부 외부 파일에서 올 수 있습니다.,작업 결과는 일반적으로 다른 파일에 기록됩니다.。

그리고 프로그램이 실행되는 동안,몇 가지 핵심 정보가 있을 것입니다.,예를 들어 예외 스택,외부 인터페이스 호출 등,

이들은 모두 로그 파일에 기록됩니다.。

쉘 스크립트도 마찬가지,그러나 우리가 일반적으로 쉘 명령을 사용할 때,키보드 입력을 통해 더 자주,然后在屏幕上

查看命令的执行结果。특정 상황에서,쉘 명령의 실행 결과를 파일에 저장해야 합니다.,那么我们

就需要使用输入输出的重定向功能

文件描述符

当执行shell命令时,기본적으로 3개의 파일이 열립니다.,각 파일에는 사용을 용이하게 하는 해당 파일 설명자가 있습니다.:

desc_sign

 

따라서 우리는 일반적으로 쉘 명령을 실행합니다.,둘 다 기본적으로 키보드에서 입력을 받습니다.,그리고 그 결과를 콘솔에 출력。

그러나 파일 디스크립터의 기본 지점을 다음으로 변경할 수 있습니다.,입력 및 출력의 리디렉션을 실현하기 위해。比如我们将1

指向文件,그러면 표준 출력이 파일로 출력됩니다.。

输出重定向

输出重定向的使用方式很简单,일부 기본 명령은 다음과 같습니다.:

rewrite

우리는 사용>또는>>출력을 리디렉션。기호의 왼쪽은 파일 설명자를 나타냅니다.,그렇지 않으면 1을 의미합니다.,

그것은 표준 출력입니다,기호의 오른쪽은 파일일 수 있습니다.,출력 장치가 될 수도 있습니다.。사용할 때>정적 경로는 실제로,

오른쪽 파일이 존재하는지 여부를 판단합니다.,있으면 먼저 삭제,그런 다음 새 파일을 만듭니다.,不存在

的话则直接创建。하지만 사용할 때>>추가할 때,기존 파일은 삭제되지 않습니다.。

출력 리디렉션에 대한 더 나은 이해를 위해,리디렉션의 "매력"을 느껴보십시오.,다음 예를 살펴보겠습니다.:우리는 테스트 디렉토리를 만듭니다,

디렉토리 아래에 하나의 a.txt 파일만 있습니다.。

在执行ls a.txt b.txt之后一共有两种输出,그들 중ls: 无法访问b.txt: 没有那个文件或

目录是错误输出a.txt是标准输出

在上述命令中我们将原来的标准输出重定向到了out文件中所以控制台只剩下了错误提示

并且当执行了追加操作时out文件的内容非但没有被清空反而又多了一条a.txt

同理我们也可以将错误输出重定向到文件中

답장을 남겨주세요