확장과 인용

커맨드라인에서 엔터(Enter)를 입력할 때 발생하는 ‘마법’에 대해 알아보자

확장

  • 명령어를 입력하고 엔터키를 누르면 bash는 그 명령어를 수행하기 전에 텍스트에 몇 가지 프로세스를 진행한다.
  • 이러한 프로세스를 “확장”이라 한다.

echo 명령어

: 쉘 비트인으로, 표준 출력상에 해당 텍스트 인자를 표시.

example

  • [me@linuxbox ~]$ echo this is a test
  • this is a test

  • [me@linuxbox ~]$ echo *
  • Desktop Documents ls-output.txt Music Pictures Public Templates Videos

왜 * 기호가 표시되지 않을까? -> 엔터키를 눌렀을 때, * 기호 그 자체를 출력하지 않고 그 확장된 결과만을 보여준다.

  • ‘*’ : 파일명에 있는 어떤 글자라도 해당된다.

# 경로명 확장 와일드카드로 동작하는 방식을 “경로명 확장”

  • [me@linuxbox ~]$ ls
  • Desktop ls-output.txt Pictures Templates Documents Music Public Videos
  • [me@linuxbox ~]$ echo D*
  • Desktop Documents

틸드(~) 확장

  • ~ 기호 문자는 특별한 의미를 가지고 있다.
  • 이 기호가 맨 앞에 있다면, 지정된 사용자의 홈 디렉토리명을 나타낸다.
  • 이름을 지정하지 않으면 현재 사용자의 홈 티렉토리 명을 나타낸다.

  • [me@linuxbox ~]$ echo ~
  • /home/me
  • [me@linuxbox ~]$ echo ~foo
  • /home/foo

산술 확장

  • 쉘에서는 산술식 확장이 가능하다.
  • $( (expression) )

  • [me@linuxbox ~]$ echo $((2 + 2))
  • 4

중괄호 확장

  • 중괄호 안에 표현된 패턴과 일치하는 다양한 텍스트 문자열을 만들 수 있다.

  • [me@linuxbox ~]$ echo Front-{A,B,C}-Back
  • Front-A-Back Front-B-Back Front-C-Back

  • 프리앰블은 중괄호({}) 앞에 있는 부분을 말하며, 포스트스크립트는 중괄호({}) 뒤에 있는 부분을 말합니다.

  • 중괄호({}) 안에 있는 A, B, C의 각각의 값들이 프리앰블과 포스트스크립트 사이에 삽입되어 다양한 텍스트 문자열이 생성됩니다. 위의 예시에서는 Front-A-Back, Front-B-Back, Front-C-Back라는 세 가지 문자열이 생성된다.

중괄호({})를 사용하여 확장된 패턴은 여러 개의 값을 한 번에 지정하고, 다양한 텍스트 문자열을 생성하는데 유용하게 사용될 수 있다.

매개변수 확장

쉘 스크립트에서 유용한 기능이 바로 매개변수 확장이다. 작은 데이터 덩어리를 저장하고, 각 덩어리마다 이름을 붙이는 시스템 기능과 함께 사용할 때 더 많은 능력을 발휘한다. 이러한 데이터 덩어리를 “변수”라 한다.

  • [me@linuxbox ~]$ echo $USER
  • me

  • $ 기호를 사용하여 변수를 참조하고, 변수의 이름을 입력하여 해당 변수에 저장된 값을 사용할 수 있다. 예를 들어, $USER는 현재 로그인한 사용자의 이름을 나타난다.

위의 예시에서 echo $USER는 $USER 변수에 저장된 값을 출력하는 명령어입니다. 만약 현재 로그인한 사용자가 “me”라는 이름을 가지고 있다면, me라는 값이 출력될 것입니다.

변수는 쉘 스크립트에서 데이터를 저장하고 사용하는데 유용하며, 다양한 용도로 활용될 수 있다.

따옴표 활용

쉘의 다양한 확장 방법을 알아봤고, 이제는 그것을 제어하는 방법

  • [me@linuxbox ~]$ echo this is a test
  • this is a test
  • [me@linuxbox ~]$ echo “this is a test”
  • this is a test
  • 쉘이 echo 명령어의 인자에서 불필요한 공백을 삭제하여 단어 분할을 했다.

쌍 따옴표 기호

  • 따옴표를 활용한 첫 번째 형태는 ‘쌍 따옴표’이다.
  • 쌍 따옴표로 파일명에 있는 공백문제 해결가능
  • ex.
  • [me@linuxbox ~]$ ls -l two words.txt
  • ls : cannot access two: No such file or directory
  • ls: cannot access words .txt : No such file or directory
  • [me@linuxbox ~]$ ls -l “two words.txt”
  • -rw-rw-r– 1 me me 18 2012-02 -20 13 :03 two words.txt
서브목차