셸은 사용자가 명령을 입력하고 엔터를 누르면 명령을 해석하고 실행한다. 셸이 명령을 해석하고 실행하기 전에 포함된 문자열, 수, 와일드카드 등을 변환하는 과정이 있는데, 이것을 확장이라 한다. 셸은 이 때에 명령에 포함된 특정 구문을 어떤 값이나 결과로 대체한다.
중괄호를 사용해서 문자열 시퀀스나 조합을 생성하는 것을 중괄호 확장이라 한다. 중괄호 안에 쉼표로 구분한 문자열 목록을 입력하면 셸은 왼쪽에서 오른쪽 순서로 문자열을 한 번씩 사용해서 새로운 문자열을 만든다.
중괄호 확장을 사용하려면 쿼팅을 사용하지 않아야 한다.
cat, dog, world를 hello-와 조합해서 출력하도록 명령어를 작성해보자.
공백이 포함된 문자열로 중괄호 확장을 해보자. 이스케이프 문자를 사용해서 공백을 살리면 된다.
echo 명령어 뒤에 오는 입력을 큰 따옴표로 감싸면 확장되지 않고 그대로 출력된다.
중괄호 확장은 중첩이 가능하며, 내부 중괄호 확장이 먼저 실행되고 바깥쪽 확장이 적용된다.
{시작..끝} 혹은 {시작..끝..증분} 과 같은 형식도 지원한다. 시작과 끝에는 영문 대소문자, 숫자를 사용할 수 있다. 시작이 크고 끝이 작은 역순도 지원하며, 증분을 입력하면 증분만큼 건너뛰고 확장한다.
중괄호 확장은 for문에서 활용하기 좋다.
~가 홈 디렉토리로 변환되는 것을 틸데 확장이라고 한다. ~ 뒤에 사용자 이름이 생략되면 현재 사용자를 의미하고, 사용자 이름이 오면 해당 사용자의 홈 디렉토리로 확장된다.