특정 패턴이 포함된 파일을 검색해 보았습니다. 패턴 자체는 tmpfl 변수에 있습니다.
echo $tmpfl --> ack_2*
이제 현재 작업 디렉토리 자체에서 파일을 찾기 위해 다음을 사용하려고했습니다.
find . -name $tmpfl
find . -name ($tmpfl)
그러나 그들 중 누구도 작동하지 않는 것 같습니다. 하지만
find . -name ack_2*
기적적으로 작동합니다.
이 접근 방식에 어떤 문제가 있나요? 이것은 유닉스에서 간단한 변수 대체입니다. 그렇죠? 그렇다면 내가 무엇을 놓치고 있는 걸까요?
답변1
변수 주위에 ""를 넣어야합니다.
find . -name "$tmpfl"
답변2
-name
매개변수가 변수이든 하드코딩된 값이든 관계없이 매개변수를 큰따옴표로 묶어야 하는 경우(공백이나 인쇄할 수 없는 문자 제외)가 있다는 것을 발견했습니다 . 항상 사용하는 습관을 들이는 것이 좋습니다.