Bash 억제 출력

Dr. Muhammad Abdullah 2023년6월20일
  1. 쉘 및 스크립팅 소개
  2. Bash 스크립트에서 명령 출력 억제
Bash 억제 출력

이 기사에서는 Bash를 사용하여 명령 출력을 억제하는 방법을 설명합니다. 또한 나중에 사용할 수 있도록 출력을 파일로 리디렉션하는 방법도 살펴보겠습니다.

쉘 및 스크립팅 소개

Shell은 Linux에서 명령줄 인터페이스를 실행하는 프로그램입니다. Linux에서는 모든 사용자가 다양한 쉘을 사용할 수 있습니다.

일반적으로 기본 GNU의 Bourne-Again Shell(Bash)은 많은 Linux 배포판에서 사용됩니다.

일련의 명령을 포함하는 파일을 스크립트라고 합니다. 이 파일은 Bash 프로그램을 사용하여 읽고 실행합니다.

예를 들어 First.sh라는 이름의 파일에 다음과 같은 내용이 있다고 가정합니다.

#!/bin/bash
echo "Hello"
echo "World"

위의 예에서 First.sh는 스크립트가 실행될 때 터미널에 Hello World를 표시하는 두 개의 echo 명령이 포함된 스크립트 파일입니다. 첫 번째 줄 #!/bin/bash는 스크립트 실행에 사용할 인터프리터의 위치를 표시합니다.

두 가지 방법으로 Linux 터미널에서 Bash 스크립트를 실행할 수 있습니다.

bash First.sh

출력:

Hello
World
./First.sh

출력:

Hello
World

Bash 스크립트에서 명령 출력 억제

Bash 스크립트를 실행하는 동안 Bash 스크립트로 작성된 명령의 출력을 억제할 수 있습니다. 출력을 null 장치로 리디렉션할 수 있습니다.

예를 들어 First.sh 스크립트의 출력을 억제하려면 다음 명령을 사용할 수 있습니다.

./First.sh > /dev/null

이 명령은 First.sh 스크립트의 출력을 억제하고 터미널에 아무 것도 표시하지 않습니다. 그러나 First.sh 스크립트에 오류가 포함되어 있으면 여전히 터미널에 표시됩니다.

First.sh 스크립트에서 다음 명령을 고려하십시오.

#!/bin/bash
echo "Hello
echo "World"

스크립트에서 첫 번째 echo 명령에 "가 없습니다. ./First.sh를 사용하여 실행한 다음 스크립트의 출력은 다음과 같습니다.

./First.sh: line 3: unexpected EOF while looking for matching `"'
./First.sh: line 4: syntax error: unexpected end of file

./First.sh > /dev/null 명령을 사용하여 이 스크립트를 실행하면 동일한 출력이 표시됩니다.

./First.sh: line 3: unexpected EOF while looking for matching `"'
./First.sh: line 4: syntax error: unexpected end of file

Bash 스크립트의 오류 억제

Bash 스크립트에 오류가 포함된 경우 ./scriptname > dev/null 명령은 오류를 억제하지 않고 위에서 설명한 대로 터미널에 오류를 표시합니다.

터미널에서도 오류를 억제할 수 있습니다. 다음 명령은 First.sh Bash 스크립트를 실행하는 동안 터미널의 출력 및 오류를 억제할 수 있습니다.

./First.sh &>/dev/null
./First.sh >/dev/null 2>&1
./First.sh >/dev/null 2>/dev/null

첫 번째 명령 ./First.sh &>/dev/null은 모든 Linux 셸에서 작동하지 않을 수 있습니다.

Bash 스크립트의 출력 기록 또는 저장

Bash 스크립트 실행 중에 /dev/null을 사용하면 출력이 억제됩니다. 그러나 사용자 지정 파일에 출력을 저장하거나 기록할 수 있습니다.

다음 First.sh 스크립트를 고려하십시오.

#!/bin/bash
echo "Hello"
echo "World"

다음 명령을 사용하여 First.sh 스크립트를 실행하여 Bash 출력을 저장하거나 기록할 수 있습니다.

./First.sh > outputfile.out

위의 명령을 실행하면 터미널에 아무 것도 표시되지 않습니다. 그러나 outputfile.out이라는 이름의 새 파일이 생성되고(아직 없는 경우) 파일 내용은 다음과 같습니다.

Hello
World

outputfile.out이 이미 존재하는 경우 기존 콘텐츠가 광택 처리되고 스크립트의 새 출력이 파일에 저장됩니다.

관련 문장 - Bash Output