쉘 스크립트
쉘 스크립트 실행
sh 명령어 사용
sh [파일 이름]
chmod 명령어 사용
chmod 755 [파일이름] # 실행 권한 부여
./[파일이름] # 실행
쉘 스크립트 파일에 실행 권한을 부여한 후 직접 실행
변수
변수명=값
환경변수
PATH : 실행 파일을 찾는 경로
PS1 : 터미널 프롬프트 모양
사용자 정의 변수
일반적으로 사용자가 프로그래밍할 때 사용하는 변수
변수명에 문자, 숫자, _ 을 사용할 수 있고 변수명의 첫 문자는 반드시 문자 또는 _
name="Alice"
echo $name # 결과: Alice
특수 변수
쉘이 자동으로 제공하는 특별한 변수
echo $$ # 현재 쉘의 프로세스 ID 출력
sleep 10 &
echo $! # 마지막으로 실행된 백그라운드 프로세스의 ID 출력
echo $? # 마지막 명령어의 실행 결과 (0이면 성공)
위치 매개 변수
변수 | 의미 |
$0 | 실행된 쉘 스크립트 파일명 |
$1 | 첫 번째 인자 |
$2 | 두 번째 인자 |
$3 | 세 번째 인자 |
$@ | 전달된 모든 인자 (배열처럼 사용 가능) |
$# | 전달된 인자의 개수 |
#!/bin/bash
echo "스크립트 이름: $0"
echo "첫 번째 인자: $1"
echo "두 번째 인자: $2"
echo "총 인자 개수: $#"
# 실행 방법
# ./myscript.sh apple banana
# 결과:
# 스크립트 이름: ./myscript.sh
# 첫 번째 인자: apple
# 두 번째 인자: banana
# 총 인자 개수: 2
변수 사용
my_name="Alice"
echo "이름: $my_name" # 이름: Alice
주의 : = 좌우에 공백을 넣으면 안된다.
조건문
기본 조건문
if [ 조건 ]
then
수행 명령어
fi
조건이 참이면 then 뒤의 명령어 실행
거짓이면 실행안됨
조건 - 문자열 검사
- str1 = str2 : 두 문자열이 같으면 true, 다르면 false
- str1 != str2 : 두 문자열이 다르면 true, 같으면 false
- str : 문자열이 비어있지 않으면 true, 비어있으면 false
조건 - 산술 비교
- -eq : 같으면 true
- -ne : 다르면 true
- -gt : 크면 true
- -ge : 크거나 같으면 true
- -lt : 작으면 true
- -le : 작거나 같으면 true
조건 - 파일 검사
- -d file : 파일이 디렉토리이면 true
- -f file : 파일이 일반 파일이면 true
- -l file : 파일이 링크 파일이면 true
- -r file : 파일이 읽기 가능하면 true
- -w file : 파일이 쓰기 가능하면 true
- -x file : 파일이 실행 가능하면 true
- -u file : SetUID 설정된 파일이면 true
- -g file : SetGID 설정된 파일이면 true
- -k file : Sticky Bit 설정된 파일이면 true
조건 - 논리 조건 연산
- ! : NOT 연산
- -a : AND 연산
- -o : OR 연산
나머지 조건문
if [ 조건 ]
then
수행 명령어1
else
수행 명령어2
fi
추가 조건문
if [ 조건1 ]
then
수행 명령어1
elif [ 조건2 ]
then
수행 명령어2
else
수행 명령어3
fi
case문
case "$color" in
'red')
echo "Color is Red"
;;
'blue' | 'sky')
echo "Color is blue"
;;
'black')
echo "Color is Black"
;;
*)
echo "NONE"
;;
esac
사용자 입력
read 변수명
반복문 - for
for 변수 in [값1] [값2] [값3] ...
do
반복할 명령어
done
반복문 - while
while [ 조건 ]
do
반복할 명령어
done
내부 명령어
- exit : 스크립트를 종료한다.
- continue : 반복문에서 진행 중인 작업을 중단하고, 반복문 처음으로 돌아간다.
- break : 반복문을 종료하고 done 이후의 명령어를 실행한다.
- return : 함수에서 결과 값을 반환하고 종료한다.
- read : 사용자로부터 입력을 받아 변수에 저장한다.
- expr : 수식을 계산해서 결과를 출력한다.
'한화시스템 Beyond SW Camp > 기반기술' 카테고리의 다른 글
[리눅스] 서버 모니터링 환경 (Prometheus, Grafana) (1) | 2024.12.08 |
---|---|
[리눅스] 서버 구축 최종 (nginx, HAProxy, Tomcat, mariaDB, Keepalived) (3) | 2024.12.05 |
[리눅스] DB 분산 (클러스터 방식) (1) | 2024.12.04 |
[리눅스] nginx로 Tomcat 분산 처리 (1) | 2024.12.04 |
[Database] 부하 테스트 도구 (JMeter) (1) | 2024.12.03 |