bash에서 작동하기 위해 와일드카드 패턴을 매개변수로 전달하는 방법은 무엇입니까? [복사]

bash에서 작동하기 위해 와일드카드 패턴을 매개변수로 전달하는 방법은 무엇입니까? [복사]

나는 다음과 같은 함수에 파일 패턴을 전달하는 일을 하고 있습니다.

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"

관련 정보