Profile picture

[Shell Script] exec 3>> file

JaehyoJJAng2023년 04월 25일

▶︎ exec 3>> file

exec 3>> file는 리눅스 / 유닉스 화경에서 파일 디스크립터를 사용하여 파일을 열고 그 파일에 내용을 추가하는 방법 중 하나이다.

여기서 exec는 셸에서 파일 디스크립터를 조작하는데 사용되는 명령어이다.

물론 이 예제에서는 위처럼 동작하지만 다른 목적으로도 사용이 가능하다.

해당 포스팅에서는 exec 명령어로 파일 디스크립터를 어떻게 조작하는지 확인해볼 것이다.


인자 설명
3 여기서 3은 임의의 파일 디스크립터를 나타낸다. 특정한 숫자일 필요는 없으며, 사용 가능한 다른 파일 디스크립터 번호를 사용할 수 있다
>> 이 연산자는 파일을 열고 해당 파일의 끝에 내용을 추가한다
file 내용을 추가할 파일의 이름

‣ 예제 1 - 파일에 내용 추가하기

{% include codeHeader.html name="script.sh" %}

exec 3>> output.txt
echo "Hello, World!" >&3

위 예제에서는 output.txt 라는 파일에 'Hello, World!'라는 문자열을 추가한다.

이 때 파일 디스크립터 3을 사용하여 파일에 접근한다.


‣ 예제 2 - 여러 줄의 내용 추가하기

{% include codeHeader.html name="script.sh" %}

exec 3>> output.txt
echo "First line ..." >&3

# 다른 파일 디스크립터를 사용하여 다른 파일에도 추가 가능
exec 4>> another_output.txt
echo "Second line ..." >&4

위 예제에서는 두 개의 파일에 각각 다른 내용을 추가한다. 파일 디스크립터 3output.txt에,

파일 디스크립터 4another_output.txt에 대해 사용한다.


Loading script...