본문 바로가기

Academy I/Tech Academy

Advanced Bash-Scripting - 특수문자

목차

1 특수문자

쉘 프로그래밍에서 특수문자란 "특별한 의미로 해석이 되는 문자들"을 의미한다. 이번 장에서는 중요한 특수문자들을 설명한다.

1.1 주석 - #

#

#는 주석으로, 쉘은 # 뒤에 있는 코드는 해석하지 않는다. 주로 코드에 대한 설명을 덧붙이기 위해서 사용한다. "#!"는 예외다.
# This line is a comment
echo "A comment will follow". # This is comment
# <------------------------> 여기 까지는 해석 된다.
#                             <------- 여기서부터 주석이다. -->

심지어 주석은 파이프사이에도 위치할 수 있다.


1.2 세미콜론 - ;

각 명령들은 세미콜론을 이용해서 나눈다. 세미콜론을 이용하면 한 줄에 두개 이상의 명령을 내릴 수 있다. 물론 한 줄에 하나의 명령만을 내린다면 세미콜론을 사용할 필요가 없다.
echo "hello"; echo " world"

if [ -x "$filename" ]; then
  echo "File $filename exists."; cp $filename $filename.bak
else
  echo "File $filename not found."; touch $filename
fi; echo "File testcomplete."
하지만 가독성이 떨어지기 때문에, 세미콜론으로 한 줄에 여러개의 명령을 내리는 것보다는 줄바꿈을 이용한다.

1.3 ;;

더블 세미콜론은 case 문을 종료하기 위해서 사용한다. (C 언어 같은)다른 언어들의 break 문의 역할을 한다.
case $variable in
  abc) echo "$variable is abc";;
  xyz) echo "$variable is xyz";;
esac

1.4 .

"dot"은 정규표현에서 문자를 일치하기 위해서 사용한다. "dot"은 단일 문자 하나와 일치한다.

1.5 "

더블 쿼터는 쉘 해석기에게 지금부터 문자열로 해석하라는 정보를 알려준다. 쉘 해석기는 더블 쿼터로 읽은 문자열의 특수문자를 처리한다.

1.6 '

싱글 쿼터도 더블쿼터와 마찬가지로 쉘 해석기에게 문자열로 해석하라고 알려준다. 더블 쿼터와는 달리 특수문자도 일반 문자로 처리한다.
# echo "My Lang : $LANG"
My Lang : ko_KR.UTF-8
# echo 'My Lang : $LANG'
My Lang : $LANG

1.7 \

\는 싱클쿼터와 같은 효과를 가진다. 싱글쿼터와는 달리 뒤에 오는 문자 하나만 쿼터를 적용한다.
# echo "\$LANG is $LANG" 
$LANG is ko_KR.UTF-8

1.8 $

변수를 사용할 것임을 알려준다.
var1=5
var2=23skidoo

echo $var1     # 5
echo $var2     # 23skidoo
변수에 값을 할당 할때는 $를 사용하지 않는다. 변수에서 값을 읽을때 $를 사용한다.

#!/bin/sh
var1=30
echo $var1
var1=`expr $var1 + 30`
echo $var1

1.9 $

정규표현식에서 줄끝을 의미한다.

1.10 $?

프로그램의 종료값을 저장하고있다.

1.11 $$

프로세스의 ID정보를 가지고 있다.
$ echo $$
13110

1.12 &&

AND 논리 연산자.


[출처 : http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/Bash/AdvancedBashScripting/Chapter03]