[Shell Script] 이중 실행이 가능한 임시파일 만들기
이중 실행이 가능한 임시파일 만들기
스크립트를 동시에 실행할 때 임시파일이 중복되지 않도록 할때 사용하는 스크립트 입니다.
스크립트 코드
#/bin/sh
tmpfile="tmp.$$" #1
date > $tmpfile #2
sleep 10
cat $tmpfile #3
rm -f $tmpfile
실행 결과
- 프로그램에서 잠시 사용하는 임시파일을 다루는 스크립트 입니다 .
- 스크립트 실행 시 date 명령어로 현재 시각을 임시 파일에 쓰고 10초 기다린 후 그값을 파일에서 읽어서 출력합니다 .
- 이 스크립트 코드에서는 셸 변수 tmpfile 로 지정한 임시 파일명을 프로세스 id($$)로 생성하는 것입니다 .
tmpfile.txt 라는 고정 파일명으로 임시 파일을 만들면 실행된 프로세스에서 값을 덮어씁니다 .
코드 설명
#1 : $$은 셸의 특수 변수로서 실행하는 셀 프로세스 ID 가 값입니다 .
이를 이용하여 임시 파일의 파일명에 프로세스 ID 를 사용합니다 .
tmpfile="tmp.$$" #1
#2 : 이 임시 파일에 date 명령어 결과를 출력해서 현재 시각을 저장합니다 .
date > $tmpfile #2
sleep 10
#3 : 임시 파일의 내용을 출력해도 중복 실행된 프로세스 사이에 영향을 받지 않습니다 .
cat $tmpfile #3
rm -f $tmpfile