트랩을 통해 임시 길찾기 삭제

트랩을 통해 임시 길찾기 삭제

다음과 같은 스크립트가 있습니다.

#!/bin/bash
set -e 

tmpdir=$(mktemp -d)
pushd $tmpdir
trap 'popd && rm -rf $tmpdir' EXIT

# Business logic which may succeed or fail...
/bin/false

종료되면 모든 것이 popd정상이지만 임시 디렉토리는 삭제되지 않습니다. 이 함정은 해결되지 않은 것 같은데 $tmpdir어떻게 극복할 수 있을까요?

$tmpdir다음을 다시 실행하여 .exit -rf에 포함되지 않았 음을 확인했습니다 rm.

rm: missing operand 

기대보다는

rm: cannot remove '/tmp/tmp.Y1SdoY5dSu/': Is a directory

답변1

신경 쓰지 마세요. 오타였습니다.

$tmpdir그리고$tempdir

내가 실행한 실제 스크립트는 다음과 같습니다.

#!/bin/bash
set -e 

tmpdir=$(mktemp -d)
pushd $tmpdir
trap 'popd && rm -rf $tempdir' EXIT

# Business logic which may succeed or fail...
/bin/false

관련 정보