DevOps/Shell

Shell Script - 4, escape character

게임이 더 좋아 2022. 11. 23. 23:51
반응형
728x170

이전 글에서 말하다 말았던 escape character에 대해서 더 알아보자

 

Shell에서 특수문자, 예약된 문자를 쓰고 싶지만 예약되었기 때문에 쓰지 못하는 문자가 있을 수 있다.

그렇다면 escape 문자를 사용함으로써 쓸 수 있다.

예를 들면 “ 같은 쌍따옴표를 쓰고 싶다면 escape를 꼭 써야만 한다.



아래 예시는 다르게 출력된다.

 

 
$ echo Hello       World
Hello World
$ echo "Hello       World"
Hello     World

 

하지만 따옴표는 출력되지 않는다.

 

이렇게 Hello    "World"따옴표를 출력하고 싶다면 어떻게 해야할까?

 

이렇게 하면 될까?

 

$ echo "Hello   \"World\""

 

 

따옴표가 다행히 잘 나왔다.

 

그렇다면 * 는 어떻게 쓸 수 있을까?

wildcard로 예약되어있는데 말이다?

 

 
$ echo *
case.shtml escape.shtml first.shtml
functions.shtml hints.shtml index.shtml
ip-primer.txt raid1+0.txt
$ echo *txt
ip-primer.txt raid1+0.txt
$ echo "*"
*
$ echo "*txt"
*txt

 

예시에서 각 쓰인 *마다 wildcard 인지 asterisk인지 다르다.

역시 *, asterisk을 쓰는 방법은 “”를 써서 사용한다.

 

그렇다면 $ 이나 ` 그리고 \(backslash)  character는 어떻게 쓸까?

앞에서 backslash를 escape character로 썼는데

backslash 자체는 어떻게 쓸까?

 

아래 예시를 참고하자

백슬래시와 따옴표

 

 
$ echo "A quote is \", backslash is \\, backtick is \`."
A quote is ", backslash is \, backtick is `.
$ echo "A few spaces are    and dollar is \$. \$X is ${X}."
A few spaces are    and dollar is $. $X is 5.



728x90
반응형
그리드형

'DevOps > Shell' 카테고리의 다른 글

Shell Script - 6, Test  (0) 2022.11.24
Shell Script - 5, Loop  (0) 2022.11.23
Shell Script - 3, Wildcard  (0) 2022.11.23
Shell script 11, Tip  (0) 2022.11.22
Shell Script - 2, Variable(1)  (0) 2022.11.21