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

다음은 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
-
-
더블 파이프 (
||):-
논리 OR 연산자; 첫 번째 명령어가 실패한 경우에만 두 번째 명령어가 실행됩니다.
cd non_existent_directory || echo "Directory does not exist"
-
-
각괄호 (
<,>,<<,>>):-
입력 및 출력 리디렉션에 사용됩니다.
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
-
-
물음표 (
?):-
파일 이름에서 정확히 1개의 문자를 일치시키는 와일드카드 문자입니다.
ls file?.txt
-
-
틸드 (
~):-
홈 디렉터리를 나타냅니다.
cd ~
-
-
달러 중괄호 (
${}):-
변수 확장 및 변수 이름을 명확하게 구분하는 데 사용됩니다.
echo ${HOME} echo ${var:=default} # 변수가 설정되지 않았을 때 기본값 할당
-
-
콜론 (
:):-
아무 것도 하지 않는 명령어(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"
이 기호와 특수 문자는 셸 스크립트에서 매우 중요하며, 이를 이해하면 더욱 효율적이고 강력한 스크립트를 작성할 수 있습니다.