강좌
클라우드/리눅스에 관한 강좌입니다.
프로그램 분류

쉘프로그래밍강좌018: echo문 내에서 '와 ", 그리고 `의 의미를 정확하게 사용하기

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

쉘프로그래밍강좌018: echo문 내에서 ' ", 그리고 `의 의미를 정확하게 사용하기

 

 

 

echo문내에서 '(single quotation mark)"(double quotation mark), 그리고 `(back single quotation mark)의 의미를 정확하게 구분하면 다음과 같습니다.

 

 

 

 

 

''으로 둘러싸인 부분은 모든 문자를 문자로만 인식하여 그대로 출력합니다.

 

 

 

 

""으로 둘러싸인 부분은 쉘변수치환이 되며 ``내에서 쉘명령어실행이 가능합니다.

 

 

 

 

``으로 둘러싸인 부분은 쉘명령어로 인식되어 그 실행결과가 출력됩니다.

 

 

 

 

 

, echo로 출력되는 문장 내에 ` `으로 둘러싸인 부분은 쉘명령어로 인식되어 실행결과가 출력됩니다.

 

 

 

 

 

위의 세가지 의미를 정확하게 이해하기 위하여 아래 예를 보시기 바랍니다.

 

 

 

 

 

다음과 같이 현재 디렉토리내에는 file1file2 두개의 파일이 존재합니다.

 

 

 

 

 

[root@su249 test]# ls -l

합계 8

-rw-r--r-- 1 root root 9 2008-11-2523:13 file1

-rw-r--r-- 1 root root 7 2008-11-2523:14 file2

[root@su249 test]#

 

 

 

 

다음과 같이 echo문으로 출력한 문자는 그냥 아무런 의미 없이 문자로만 출력됩니다.

 

 

 

 

, ‘그리고 으로 둘러싸인 부분은 그냥 문자로만 인식되어 "ls -l"이라는 문자 그대로 출력된 것입니다.

 

 

 

 

 

[root@RockyLinux01 rc.d]# echo ls -l

ls -l

[root@RockyLinux01 rc.d]#

[root@RockyLinux01 rc.d]# echo 'ls -l'

ls -l

[root@RockyLinux01 rc.d]#

[root@RockyLinux01 rc.d]#

[root@RockyLinux01 rc.d]# echo "ls -l"

ls -l

[root@RockyLinux01 rc.d]#

 

 

 

 

하지만, 아래와 같이 `문자와 `문자로 둘러싸인 부분은 쉘명령어로 인식되어 ls -l의 실행결과가 출력 되었습니다.

 

 

 

 

 

[root@RockyLinux01 rc.d]# ls -l

합계 4

drwxr-xr-x. 2 root root  20  4 28 15:52 init.d

-rw-r--r--  1 root root 474  2 28 17:40 rc.local

[root@RockyLinux01 rc.d]#

[root@RockyLinux01 rc.d]# echo "`ls -l`"

합계 4

drwxr-xr-x. 2 root root  20  4 28 15:52 init.d

-rw-r--r--  1 root root 474  2 28 17:40 rc.local

[root@RockyLinux01 rc.d]#

[root@RockyLinux01 rc.d]#

 

 

 

 

또 한가지 분명하게 구분해야 하는 것은 ''으로 둘러싸인 것과 ""으로 둘러싸인 것의 차이점입니다.

 

 

 

문자와 으로 둘러싸인 문장 내에서는 모든 것을 문자 그대로만 인식합니다.

 

 

 

  하지만 ""으로 둘러싸인 문장 내에서는 변수치환과 쉘실행을 그대로 적용하여 결과를 출력합니다.

 

 

 

 

 

아래의 예를 바로 앞의 예와 비교해 보시기 바랍니다.

 

 

 

 

 

앞의 예는 echo로 출력되는 문장전체를 ""으로 둘러싸여서 변수치환과 쉘실행이 가능했지만, 아래의 예는 ''으로 둘러싸여 있으므로 아무런 인식이 되지 않은 채 문자 그대로 출력이 되었습니다.

 

 

 

 

 

[root@RockyLinux01 rc.d]# echo '`ls -l`'

`ls -l`

[root@RockyLinux01 rc.d]#

 

 

 

 

방금 설명한 것은 쉘프로그램등을 작성할 때에 매우 요긴하게 사용되는 것으로서 '", 그리고 `의 의미를 정확하게 알고 있어만 쉘프로그램을 쉽게 구현할 수가 있습니다.

 

 

 

 

 

 

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,037 명
  • 현재 강좌수 :  35,807 개
  • 현재 접속자 :  141 명