환경변수와 같은 이름의 폴더를 삭제하세요.

환경변수와 같은 이름의 폴더를 삭제하세요.

log4j 속성 파일을 조작하다가 실수로 다음 텍스트가 포함된 폴더를 생성했지만 폴더를 가리키는 환경 변수 ${foo}도 있으므로 foo이렇게 하면 rm -rf "${foo}"폴더 대신 지정된 폴더가 삭제됩니다. 환경 변수가 가리키는 폴더 대신 현재 디렉터리의 폴더를 삭제하려면 상대 경로를 어떻게 지정합니까?$foo${foo}

레이아웃 이해에 더 도움이 됩니다.

$foo=/home/user/bar

${foo}=/home/user/${foo}

답변1

문자열 보간으로 인해 이러한 문제가 발생할 수 있습니다. 이러한 일이 발생하지 않도록 선택적으로 방지하는 방법에는 여러 가지가 있습니다. bash 해커 위키에는좋은 예, 그러나 실제로 bash를 사용하지 않는 경우 세부 사항이 다를 수 있습니다.

즉, 작은따옴표를 사용하여 보간을 방지할 수 있으며 문자를 이스케이프할 수도 있습니다.

[me:~/work]$ export foo=bar
[me:~/work]$ echo $foo
bar
[me:~/work]$ echo "\${foo} is set to ${foo}"
${foo} is set to bar

관련 정보