bash: 셸 따옴표 및 셸 쌍따옴표

bash 및 셸 프로그램에서 명령어를 치환하는데 ‘$’ 기호와 소괄호'()’를 사용하는 대신 따옴표 기호도 사용합니다.

 치환은 수식의 어떤 부분에 그와 대등한 무언가로 바꿔 넣는 행위입니다.

‘셸 따옴표’와 ‘셸 쌍따옴표’의 기본 공통 사항은 확장을 제어하는데 활용된다는 것입니다.

여기에서 차이점은 셸 따옴표는 모든 확장을 제어하지만 셸 쌍따옴표는 3개의 기호를 제외하게 됩니다.

셸 쌍따옴표 제외 기호: $ \ `
셸 따옴표 셸 쌍따옴표

1. 셸 따옴표[:Quotes] 및 인자

간단하게 셸이 echo 명령어의 따옴표가 없는 경우에는 500 중에 5를 삭제하고 ‘take money 00’만 출력했습니다.

따옴표를 썼을 때는 ‘500’이 모두 표시되며, 셸은 원치 않는 확장을 선택해서 감출 수 있게 따옴표 기호를 활용하는 기능을 제공합니다.

~]# echo take money $500
 take money 00
 ~]# echo 'take money $500'
 take money $500

첫 줄에서는 셸이 echo 명령어 인자의 불필요한 공백을 삭제하여 단어 분할을 했습니다.
(인자는 수학에서 사용되는 주로 사용되는 용어로 서식에서 연산에 사용되는 값들을 모두 ‘인자=인수(argument)’라 할 수 있습니다.)

두 번째 줄에서는 따옴표를 활용한 매개변수 확장으로 정의되지 않은 변수로 처리되었던 5가 표시됩니다.

2. 셸 쌍따옴표[:Double Quotes]

셸 쌍따옴표로 텍스트를 묶으면 셸에서 사용하는 모든 특수한 기호들이 가진 의미가 없어집니다. 대신 일반적인 문자로 인식하게 됩니다. 단 [ $ \ ` ] 3개의 기호는 예외가 되며 3개의 기호를 쌍따옴표에서 사용할 수 있습니다.

~]# echo take money $500
 take money 00
 ~]# echo 'take money $500'
 take money $500
 ~]# echo "take money $500"
 take money 00

2.1 쌍따옴표 : 공백문자 인식 기능

쌍따옴표는 공백문자도 인식이 가능합니다.

 ~]# ll oo oo.txt
 ls: cannot access oo: No such file or directory
 ls: cannot access oo.txt: No such file or directory 

 ~}# ll "oo oo.txt"
 -rw-r--r-- 1 root root 0 Jul  8 15:55 oo oo.txt
 ~}# mv "oo oo.txt" oo_oo.txt 

해당 기능을 활용해 인식 후 삭제(rm)나 변경이 가능합니다.

2.2 쌍따옴표 활용 : 확장 및 치환 시 작업

매개변수 확장, 산술 확장, 명령어 치환 시에 쌍따옴표 안에서 해당 작업을 그대로 수행할 수 있습니다.

~]# echo "$USER $((2+2)) $(cal)"
3월 2021
일 월 화 수 목 금 토
    1  2  3  4  5  6
 7  8  9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31

Similar Posts

  • Rocky Linux 설치 (9.5 Ver Minimal) | 이더넷 설정

    VirtualBox로 Rocky Linux 설치(9.5 Ver)를 진행해 보겠습니다. Rocky Linux 설치를 위해 ISO 파일을 다운로드 받은 후 가상 머신을 생성합니다. EFI 활성화를 체크 후 설치 진행을 하겠습니다. 목차1. 셸 따옴표[:Quotes] 및 인자2. 셸 쌍따옴표[:Double Quotes]2.1 쌍따옴표 : 공백문자 인식 기능2.2 쌍따옴표 활용 : 확장 및 치환 시 작업 ✅ Rocky Linux 설치 Rocky Linux…

  • 리눅스 head 명령어 & tail 명령어

    리눅스 head 명령어는 파일의 처음 10줄을 보여주는 명령어이며, tail 명령어는 파일의 마지막 10줄을 보여주는 명령어입니다. 옵션 없이 사용할 경우 각각의 머리와 꼬리 부분을 보여주는 것을 알 수 있습니다. head와 tail 명령어는 보통 서버의 access_log를 볼 때 주로 많이 사용됩니다. 두 명령어의 사용법과 테스트 서버에서 access_log를 각각의 명령어를 통해 확인 해 보겠습니다. 목차1. 셸…

  • 리눅스 grep 명령어

    리눅스 grep 명령어는 로그 파일과 같은 텍스트 파일과 아스키 파일에서 원하는 문자열을 찾을 때 사용되며, tail과 find 명령어를 파이프(|)와 결합해서 자주 사용하게 되는 명령어입니다. 목차1. 셸 따옴표[:Quotes] 및 인자2. 셸 쌍따옴표[:Double Quotes]2.1 쌍따옴표 : 공백문자 인식 기능2.2 쌍따옴표 활용 : 확장 및 치환 시 작업✅ grep 명령어 기본 사용법 ✅ 기본적인 사용 예…

  • Apache http2 적용하기(mod_http2)

    리눅스 서버에 Apache를 설치하게 되면, 기본 프로토콜은 HTTP/1.1을 기본으로 통신하게 되어 있다. Apache http2는 Apache 2.4.17 버전 부터 DSO 모듈로(mod_http2.so) HTTP/2를 지원한다. HTTP/2(Hypertext Transfer Protocol Version 2)는 월드 와이드 웹에서 쓰이는 HTTP 프로토콜의 두 번째 버전이다. 목차1. 셸 따옴표[:Quotes] 및 인자2. 셸 쌍따옴표[:Double Quotes]2.1 쌍따옴표 : 공백문자 인식 기능2.2 쌍따옴표 활용 : 확장…

  • 리눅스 퍼미션(4,2,1)과 소유권 | chmod, chown, umask 명령어 | 스티키 비트

    리눅스 퍼미션(Permission)은 권한(&허가)을 의미합니다. 유닉스 계열 운영 체제들은 MS-DOS 계열의 운영 체제들은 멀티 테스킹 시스템이 아니며 멀티 유저 시스템 역시 아닙니다. 보통 컴퓨터는 하나의 키보드와 모니터를 가지고 한 명이 사용하지만 멀티 유저 시스템인 리눅스는 한 명 이상이 사용할 수 있다는 것을 의미합니다. 유닉스 계열의 멀티 유저 시스템은 운영 체제 설계 초기부터 깊게 내장된…

  • [Linux] mod_ssl.so Apache 모듈 설치하기

    아파치를 사용하는 리눅스 서버에 SSL을 적용하려고 할 때 아피치 모듈 중 mod_ssl.so가 설치되어 있어야 합니다. 목차1. 셸 따옴표[:Quotes] 및 인자2. 셸 쌍따옴표[:Double Quotes]2.1 쌍따옴표 : 공백문자 인식 기능2.2 쌍따옴표 활용 : 확장 및 치환 시 작업✅ mod_ssl.so 설치 ✅ 서버 방화벽 포트 443 열어두기 SSL 포트인 443 포트가 방화벽에서 열려있는 상태로 활성화 되어…

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

Prove your humanity: 6   +   5   =