일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 주피터노트북 설치
- terraform with aws
- 쉘스크립트
- aws기본
- terraform따라하기
- linux명령어
- Cissp sdlc
- 리눅스기초명령어
- 직무분리
- aws
- terraform기초
- AWS구축
- AWS배포자동화
- AWS 공격테스트
- blue/green배포
- AWS실습
- opt/anaconda3/bin/jupyter_mac.command
- aws terraform
- 리눅스명령어
- aws따라하기
- cissp
- AWS CI/CD
- GDPR
- 최소권한
- Linux
- AWS CodeDeploy
- aws기초
- 리눅스
- terraform기본
- 리눅스기초
ysuekkom의 IT study note
[linux 기초] 명령어 실습편 - 초간단 쉘 스크립트 작성III -함수/배열 본문
[linux 기초] 명령어 실습편 - 초간단 쉘 스크립트 작성III -함수/배열, 리다이렉션
개인 공부를 위한 기록용으로 일부 과거 자료 이전
###간단 쉘 스크립트 -조건문/반복문 -함수/배열 -리다이렉션의 활용 -대화식 구성/메뉴구성 |
###function 함수
function 함수명 {
명령어
}
아래와같이 편의식으로 사용도 가능함.
함수이름() {
명령어
}
>반복해야할 작업을 함수로 만들어두고 간편히 함수를 호출하여 사용함(반복함)
>반복되는 라인을 function line으로 함수선언, 필요시마다 함수명 line으로 호출하여 사용
>chmod 700 example.sh
>./example.sh
<<사칙연산 함수 라이브러리 만들기>>
라이브러리로 사용할 함수 모음 만들기
>vi calc
>>0으로 나눌 경우 나눌 수 없음 안내
사칙 연산 시 $ [ 연산 ] 처리
라이브러리 호출할 쉘 스크립트 간단 작성
>vi use_calc.sh
>chmod 700 use_calc.sh
>./use_calc.sh
#배열: 배열에 숫자 또는 문자 사용 가능
변수에 배열 선언해줘도, 맨 처음만 나옴
>echo "${test_array}" == echo "${test_array[0]}"
[0]이 생략된 것이기 때문,
>>배열 index는 0,1,2,3…
for문으로 한 번에 출력 가능
쉘 스크립트 사용 시, 문제를 복잡하게 만들기 때문에 배열은 자주 사용되지 않음
변수 하나에 여러개의 내용을 저장하고 싶을 때는? -- 파일을 사용해서 적용함. But 배열보다 느림. (디스크에 올리고 불러와야해서)// 배열은 메모리에 올리기 때문 바로 불러올 수 있다.
###리다이렉션: 입/출력, 에러(==표준 스트링)를 지정한 곳으로 바꿔준다. 쉘 스크립트 안에서 텍스트파일의 활용
출력 방향을 지정한 곳으로 바꿔주는 것. -> while 사용 시, < serverlist.sh
쉘스크립트 내부에서 파일로 출력방향을 지정해주면 로그파일 혹은 레포트가 만들어짐
표준입력 = 0. 표준출력 =1, 표준에러 =2
>ls: cannot access ~~~ :표준에러
>txt1~3까지 파일 리스트 출력: 표준 출력
<실습 정상적이면 ok라는 파일에, 에러가 나면 ng라는 파일에 >
WORK에서 수행
>ls -al txt1 txt2 txt3 txt4 1> ok 2> ng
표준 출력 txt1~3 파일 리스트는 ok파일에
표준 에러 No such file or directory 에러메시지는 ng파일에
>>실전 활용법
시스템 정보를 확인 후, 이메일로 보내는 쉘 스크립트
>vi systeminfo.sh
>>명령의 결과를 파일로 보내고, 파일을 읽어서 메일로 보내기
report.txt파일을 만들고 명령 실행 결과 넣기
>touch report //report file 생성
>cp -f /dev/null report // report file 초기화
# 리다이렉션 표현
> : 덮어쓰기(overwrite)
>> : 추가로 쓰기(append)
>df -h >> report
>pstrr >> report
....
:wq!
저장 후 확인하기
...
>>/dev/null 위치한 report file에 내용 쌓인 것 확인 --> 메일로 보내기
>vi systeminfo.sh
>cat report | mail -s "[report] cent1 system info" 메일주소 ---> 형식으로 작성
but, cent1에는 메일 보내는 설정 안되어있기에 주석처리로 마무리 // 형식만 확인 할 것.
>>보기 편하게 조금 수정
>작성 후 초기화 ./systeminfo.sh
...
##tee == > (overwrite)
##tee -a == > (append)
>report file에도 들어가고, 출력도 해줌
>./systeminfo.sh
시 바로 출력됨 화면에 (파일도 생성됨)
>>쉘 스크립트 작성 시 확인할 때 사용
'OS > linux' 카테고리의 다른 글
[linux 기초] 명령어 실습편 - 초간단 쉘 스크립트 작성IIII -대화식 쉘스크립트 구성 (1) | 2022.10.15 |
---|---|
[linux 기초] 명령어 실습편 - 초간단 쉘 스크립트 작성II - 조건문/반복문 (0) | 2022.10.14 |
[linux 기초] 명령어 실습편 - 초 간단 쉘 스크립트 작성 (1) | 2022.10.13 |
[linux 기초] 명령어편 - 검색, 입출력 관련 (1) | 2022.10.13 |
[linux 기초] 명령어편 - 네트워크 관련 (1) | 2022.10.13 |