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