![bash에서 작동하기 위해 와일드카드 패턴을 매개변수로 전달하는 방법은 무엇입니까? [복사]](https://linux55.com/image/96899/bash%EC%97%90%EC%84%9C%20%EC%9E%91%EB%8F%99%ED%95%98%EA%B8%B0%20%EC%9C%84%ED%95%B4%20%EC%99%80%EC%9D%BC%EB%93%9C%EC%B9%B4%EB%93%9C%20%ED%8C%A8%ED%84%B4%EC%9D%84%20%EB%A7%A4%EA%B0%9C%EB%B3%80%EC%88%98%EB%A1%9C%20%EC%A0%84%EB%8B%AC%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F%20%5B%EB%B3%B5%EC%82%AC%5D.png)
나는 다음과 같은 함수에 파일 패턴을 전달하는 일을 하고 있습니다.
line=FILE*.txt
getFlag $line
그리고 그 기능은 다음과 같습니다.
function getFlag
{
filepattern=$1
echo "File pattern is: $filepattern"
}
출력이 필요합니다.
File pattern is: FILE*.txt
다음과 같이 폴더에 일치하는 파일 이름이 있는 출력을 얻으면:
File pattern is: FILE123.txt
파일 패턴을 함수에 변수로 전달하고 있지만 변수 확장을 방해하지 않으며 변수의 패턴과 일치하는 파일 이름이 전달됩니다.
위 사항에 대한 도움을 주시면 대단히 감사하겠습니다.
답변1
~처럼이르카추 라고, 작은따옴표나 큰따옴표를 사용하여 이 함수에 전달된 매개변수를 인용할 수 있습니다.
line='FILE*.txt'
또는
line="FILE*.txt"
Bash에게 실행하라고 지시하는 것아니요대안 또는일부교체는 파일 이름 확장 없이 개별적으로 수행됩니다.
또 다른 옵션은 when 설정 줄을 이스케이프 처리 *
한 다음 따옴표를 사용하여 매개 변수를 함수에 전달하는 것입니다.
line=FILE\*.txt
getFlag "$line"