본문 바로가기
UX 개발/Shell Script (Bash)

쉘 스크립트(Bash) - 기호와 특수문자 기본 모음

반응형

다음은 Bash와 셸 스크립트에서 사용되는 여러 가지 특수 문자와 기호에 대한 설명입니다:

특수 문자와 기호

  1. 백슬래시 (\):
    • 특수 문자를 이스케이프하는 데 사용됩니다. 
    • echo "Hello, \"World\"!"
  2. 달러 기호 ($):
    • 변수를 참조하는 데 사용됩니다.
      echo $HOME
  3. 싱글 쿼트 ('):
    • 쿼트 안의 모든 문자를 그대로 출력합니다.
      echo 'This is a single-quoted string.'
  4. 더블 쿼트 ("):
    • 쿼트 안의 모든 문자를 그대로 출력하지만 $, `\는 예외입니다.
      echo "This is a double-quoted string with a variable: $HOME"
  5. 백틱 (`):
    • 명령어 치환에 사용되며, 명령어의 출력을 그 명령어로 대체합니다.
      today=`date`
      echo "Today's date is: $today"
  6. 달러 괄호 ($(...)):
    • 명령어 치환에 사용됩니다 (백틱보다 선호됨).
      today=$(date)
      echo "Today's date is: $today"
  7. 해시 (#):
    • 주석을 시작하는 데 사용됩니다. 같은 줄에서 # 뒤에 있는 모든 내용은 셸에 의해 무시됩니다.
      # This is a comment
      echo "Hello, World!" # This is an inline comment
  8. 앰퍼샌드 (&):
    • 명령어를 백그라운드에서 실행하는 데 사용됩니다.
      ./script.sh &
  9. 파이프 (|):
    • 한 명령어의 출력을 다른 명령어의 입력으로 전달하는 데 사용됩니다.
      ls -l | grep "txt"
  10. 세미콜론 (;):
    • 단일 줄에서 여러 명령어를 구분하는 데 사용됩니다.
      echo "Hello"; echo "World"
  11. 더블 앰퍼샌드 (&&):
    • 논리 AND 연산자; 첫 번째 명령어가 성공한 경우에만 두 번째 명령어가 실행됩니다.
      mkdir newdir && cd newdir
  12. 더블 파이프 (||):
    • 논리 OR 연산자; 첫 번째 명령어가 실패한 경우에만 두 번째 명령어가 실행됩니다.
      cd non_existent_directory || echo "Directory does not exist"
  13. 각괄호 (<, >, <<, >>):
    • 입력 및 출력 리디렉션에 사용됩니다.
      command > output.txt   # 출력을 파일로 리디렉션
      command >> output.txt  # 출력을 파일에 추가
      command < input.txt    # 파일에서 입력 받기
      command <<EOF          # 멀티라인 문자열 입력을 위한 here document
  14. 대괄호 ([ ][[ ]]):
    • 조건식을 작성하는 데 사용됩니다.
      if [ "$var" -eq 1 ]; then
      echo "Variable is 1"
      fi
  15. 소괄호 (( ){ }):
    • 서브셸을 생성하거나 명령어 그룹을 만드는 데 사용됩니다.
      (cd /tmp; ls)   # 서브셸에서 실행
      { cd /tmp; ls; }  # 현재 셸에서 실행
  16. 느낌표 (!):
    • 논리 부정에 사용됩니다.
      if [ ! -d "/tmp/mydir" ]; then
      echo "Directory does not exist"
      fi
  17. 별표 (*):
    • 파일 이름에서 0개 이상의 문자를 일치시키는 와일드카드 문자입니다.
      ls *.txt
  18. 물음표 (?):
    • 파일 이름에서 정확히 1개의 문자를 일치시키는 와일드카드 문자입니다.
      ls file?.txt
  19. 틸드 (~):
    • 홈 디렉터리를 나타냅니다.
      cd ~
  20. 달러 중괄호 (${}):
    • 변수 확장 및 변수 이름을 명확하게 구분하는 데 사용됩니다.
      echo ${HOME}
      echo ${var:=default}   # 변수가 설정되지 않았을 때 기본값 할당
  21. 콜론 (:):
    • 아무 것도 하지 않는 명령어(null command)로 사용되며, 또한 변수 확장에 사용됩니다.
      :  # 아무 것도 하지 않음
      ${var:=default}  # 변수가 설정되지 않았을 때 기본값 할당

예제 사용법

#!/bin/bash

# 변수
name="World"
echo "Hello, $name!"

# 명령어 치환
current_date=$(date)
echo "Today is $current_date"

# 조건식
if [ -d "/tmp" ]; then
  echo "/tmp is a directory"
else
  echo "/tmp is not a directory"
fi

# 반복문
for file in *.txt; do
  echo "Found text file: $file"
done

# 리디렉션
echo "Some text" > output.txt
cat output.txt

# 백그라운드 작업
sleep 10 &

# 함수
greet() {
  echo "Hello, $1!"
}
greet "Alice"

이 기호와 특수 문자는 셸 스크립트에서 매우 중요하며, 이를 이해하면 더욱 효율적이고 강력한 스크립트를 작성할 수 있습니다.

반응형
❤️ 외주/과외 문의
🖥️ 클라우드 메뉴판 : 디지털팝