다른 파일을 찾기 위해 스크립트에 대한 인수를 사용하려고 합니다. 문제는 명령 x.*
줄에서 스크립트에 인수를 제공 하면 x.sh
.x.*
명령줄의 스크립트: . 인쇄 ./script.sh x.*
하려고 하면 .$1
x.sh
답변1
스크립트 내에서는 이 작업을 수행할 수 없습니다. *
~ 해야 하다탈출하다그렇지 않으면 파일 이름과 일치하려고 시도합니다(귀하의 경우 파일 이름의 문자열과 일치하는 전역 연산자 x.
와 같은 모든 것 ). *
기본적으로 세 가지 방법으로 이 작업을 수행할 수 있습니다. 문자열을 작은따옴표나 큰따옴표로 묶습니다.
./script.sh "x.*"
./script.sh 'x.*'
또는 문제가 되는 문자 앞에 백슬래시를 추가합니다.
./script.sh x.\*
Jeff가 의견에서 언급했듯이(감사합니다) 다음을 통해 전역 확장을 비활성화할 수도 있습니다.
set -o noglob
set +o noglob
원하는 경우 다시 켤 수 있습니다.