{,string} 구문은 어떻게 작동합니까?

{,string} 구문은 어떻게 작동합니까?

{,string}구문을 이해하는 데 어려움을 겪습니다 . 나는 주로 다음과 같은 파일 이름을 바꾸는 데 사용 mv test{,.original}하지만 잘 이해하지 못합니다.

echo asdf{,.fdsa}

산출:

asdf asdf.fdsa

하지만

echo asdf{asdf,.fdsa}

산출:

asdfasdf asdf.fdsa

나는 쭉 읽어보려고 노력한다이것#나는 or 를 사용하여 유사한 패턴을 찾았 ?지만 지금은 을 사용 ,하여 패턴을 찾아야 한다고 생각하지만 그것이 수행되는 작업은 아니라고 생각합니다.

어떻게 작동하나요?

답변1

버팀대 확장입니다. 여기에서 자세한 내용을 읽어보세요.배쉬 매뉴얼.

중괄호 안의 쉼표로 구분된 목록에서 각 가능성을 생성합니다.

echo asdf{asdf,.fdsa}
asdfasdf asdf.fdsa
  • echo다음 내용을 그대로 반영하세요(모든 경우는 아니지만 단순화를 위해 이 예에서는).
  • asdf{asdf,.fdsa}두 가지 가능성으로 확장됩니다(기호가 있으므로 ,목록을 두 부분으로 나눕니다). 먼저 asdf변경되지 않은 부분을 얻은 다음 asdf이를 다른 부분(중괄호 목록의 첫 번째 항목)과 연결한 다음 asdf공백을 사용하여 다른 부분(목록의 두 번째 항목)과 연결합니다..fdsa

동일한 문자열을 접두사 및 중괄호 내부에 사용하면 약간 혼란스러울 수 있으므로 더 명확하게 하기 위해 다음을 시도해 보겠습니다.

$ echo a{,b,.c,def}gh
agh abgh a.cgh adefgh

이것은 다음과 같이 번역됩니다.

  • a+ 빈 문자열 + gh=agh
  • a+ b+ gh=abgh
  • a+ .c+ gh=a.cgh
  • a+ def+ gh=adefgh

관련 정보