쉘 스크립트 개발을 하며 자주 사용하는 부분을 정리하여 추후 쉘 스크립트 제작시 참고하기 위함.
#!/bin/bash
...
#!/bin/bash의 의미는 bash 쉘로 시작하겠다는 의미입니다.
해당 부분에 대한 작성 없이 정상 동작 됐다면 bash 쉘이 default 쉘로 설정되어 있어서 입니다.
#!/bin/bash
#COLOR SETTING
RED="\033[1;31m"
GREEN="\033[1;32m"
YELLOW="\033[1;33m"
BLUE="\033[1;34m"
MAGENTA="\033[1;35m"
CYAN="\033[1;36m"
RESET="\033[0m"
#COLOR TEST
echo -e "$RED RED $RESET"
echo -e "$GREEN GREEN $RESET"
echo -e "$YELLOW YELLOW $RESET"
echo -e "$BLUE BLUE $RESET"
echo -e "$MAGENTA MAGENTA $RESET"
echo -e "$CYAN CYAN $RESET"
color setting을 하여 echo를 통해 출력할 때 글자색을 바꿀 수 있습니다.
바뀐 글자색 옵션을 적용해 출력하려면 echo에 -e 옵션을 붙여서 실행해야 합니다.
개인적으로 Bright한 색상을 더 좋아해서 위 색깔은 Bright한 색깔에 대한 설정입니다.
#!/bin/bash
#mkdir test
mkdir $(date +'%Y-%m-%d')-date-test
스크립트 실행 날짜를 값으로 사용하여 디렉토리를 만드는 예시입니다.
이외 다른 작업에서도 $(date + '%Y-%m-%d') 를 활용하여 다양한 작업을 할 수 있습니다.
#!/bin/bash
H="hello"
w="World"
echo "${H}" "${w}"
변수명=값 의 형태로 변수를 선언하여 사용합니다.
사용할때는 $변수 혹은 ${변수} 형태로 사용합니다.
print.sh
#!/bin/bash
echo "script name:${0}"
echo "매개변수 갯수 :${#}"
echo "전체 매개변수 값 : ${*}"
echo "전체 매개변수 값2 : ${@}"
echo "매개변수 1 : ${1}"
echo "매개변수 2 : ${2}"
sh print.sh hello world
hello와 world라는 두개의 매개변수(위치매개변수)를 가지고 print.sh이 실행됩니다.
input.sh
#!/bin/bash
echo -n "Enter value : "
read -r VALUE
echo "your value is ${VALUE}"
read를 통해 입력 값을 받아서 사용할 수 있습니다.
이때 echo -n 옵션을 사용하면 Enter value : 옆에 커서가 위치하고, -n 옵션을 빼면 다음줄에 커서가 위치합니다.
if.sh
#!/bin/bash
echo -n "Enter value A : "
read -r A
echo -n "Enter value B : "
read -r B
if [[ "${A}" == "apple" ]]; then
echo "Value A is apple"
elif [[ "${A}" == "${B}" ]]; then
echo "Value A and B is same"
else
echo "Value A is not apple and A, B is not same"
fi
if문 사용의 간단한 예시입니다.
if와 elif else를 사용할 수 있고 if문은 fi로 끝내야 합니다.
그리고 if문을 사용할때는 꼭 [ ]안의 공백을 확인해서 사용해야합니다.
if-z.sh
#!/bin/bash
echo -n "Enter value A : "
read -r A
if [ -z "$A" ]; then
echo "A is Null"
else
echo "A is not Null"
fi
if [ -z "{확인하려는값}" ]; then 구문을 활용하여 확인하려는값이 null 값인지 확인할 수 있습니다.
문자열 비교
번호 | 옵션 | 사용법 | 설명 |
---|---|---|---|
1 | 없음 | if [ 문자 ] | null이 아니면 참. |
2 | = or == | if [ 문자 == 문자 ] | 두 문자열이 같다면 참. |
3 | != | if [ 문자 != 문자 ] | 두 문자열이 같지 않으면 참. |
4 | -n | if [ -n 문자 ] | 문자열이 null이 아니면 참. |
5 | -z | if [ -z 문자 ] | 문자열이 null이면 참. |
산술 비교
번호 | 옵션 | 연산자 | 사용법 | 설명 |
---|---|---|---|---|
1 | -eq | = | if [ 값1 -eq 값2 ] | 두 값이 같으면 참. |
2 | -ne | != | if [ 값1 -ne 값2 ] | 두 값이 같지 않으면 참. |
3 | -gt | > | if [ 값1 -gt 값2 ] | 값1이 값2보다 크면 참. |
4 | -ge | >= | if [ 값1 -ge 값2 ] | 값1이 값2보다 크거나 같으면 참. |
5 | -lt | < | if [ 값1 -lt 값2 ] | 값1이 값2보다 작으면 참. |
6 | -le | <= | if [ 값1 -le 값2 ] | 값1이 값2보다 작거나 같으면 참. |
7 | -a | and | if [ 조건1 -a 조건2 ] | 조건1과 조건2의 결과가 모두 참이어야 참. |
8 | -o | or | if [조건1 -o 조건2 ] | 조건1과 조건2의 결과 중 하나만 참이면 참. |