Bash: 확장

셸은 사용자가 명령을 입력하고 엔터를 누르면 명령을 해석하고 실행한다. 셸이 명령을 해석하고 실행하기 전에 포함된 문자열, 수, 와일드카드 등을 변환하는 과정이 있는데, 이것을 확장이라 한다. 셸은 이 때에 명령에 포함된 특정 구문을 어떤 값이나 결과로 대체한다.

중괄호 확장

중괄호를 사용해서 문자열 시퀀스나 조합을 생성하는 것을 중괄호 확장이라 한다. 중괄호 안에 쉼표로 구분한 문자열 목록을 입력하면 셸은 왼쪽에서 오른쪽 순서로 문자열을 한 번씩 사용해서 새로운 문자열을 만든다.

중괄호 확장을 사용하려면 쿼팅을 사용하지 않아야 한다.

실습

  1. cat, dog, world를 hello-와 조합해서 출력하도록 명령어를 작성해보자.

    image.png

  2. 공백이 포함된 문자열로 중괄호 확장을 해보자. 이스케이프 문자를 사용해서 공백을 살리면 된다.

    image.png

  3. echo 명령어 뒤에 오는 입력을 큰 따옴표로 감싸면 확장되지 않고 그대로 출력된다.

    image.png

  4. 중괄호 확장은 중첩이 가능하며, 내부 중괄호 확장이 먼저 실행되고 바깥쪽 확장이 적용된다.

    image.png

  5. {시작..끝} 혹은 {시작..끝..증분} 과 같은 형식도 지원한다. 시작과 끝에는 영문 대소문자, 숫자를 사용할 수 있다. 시작이 크고 끝이 작은 역순도 지원하며, 증분을 입력하면 증분만큼 건너뛰고 확장한다.

    image.png

  6. 중괄호 확장은 for문에서 활용하기 좋다.

    image.png

틸데 확장

~가 홈 디렉토리로 변환되는 것을 틸데 확장이라고 한다. ~ 뒤에 사용자 이름이 생략되면 현재 사용자를 의미하고, 사용자 이름이 오면 해당 사용자의 홈 디렉토리로 확장된다.

틸데 확장 실습