{0[7-9],1*,2*}의 의미

{0[7-9],1*,2*}의 의미

다음 명령은 무엇을 수행하며 어떤 결과를 제공합니까?

echo "{$begin_dt/{0[7-9],1*,2*},$dates/*,$next_dt/0[0-6]}"

$begin_dt날짜 는 어디에 $next_dt있고 날짜는 무엇입니까?

답변1

질문 제목의 문자열은 질문 자체의 문자열과 약간 다릅니다. 즉, 후자는 따옴표로 묶여 있지만 제목의 것은 그렇지 않습니다.

외부인용하다,버팀대 {...}확장중괄호 옆의 문자열에 추가하고 중괄호 안의 쉼표로 구분된 모든 문자열을 연결합니다. 즉 , 및 string{this,that}로 확장되므로 공통 부분이 중복되지 않습니다.stringthisstringthat

그 후에 파일 이름 글로빙이 발생하므로 이와 유사한 것이 dir/{0[7-9],1*,2*}로 확장되고 dir/0[7-9]그 모든 것이 일치하는 파일 이름으로 확장됩니다 dir/1*.dir/2*

파일명이 월의 두 자리 일인 경우 숫자 07부터 29까지 일치합니다. (그러나 30이나 31은 일치하지 않습니다!)

예제의 외부 버팀대 그룹도 비슷하게 확장됩니다.

~에따옴표, 중괄호 등 특별한 내용은 없고, 파일명 확장은 하지 않아 변수만 확장한다.

중괄호 확장이 포함된 Bash 및 기타 셸에서 이는 POSIX sh 기능이 아닙니다.

관련 정보