운영체제/리눅스
[리눅스] 쉘스크립트_1
Cloud_Park
2022. 7. 31. 12:19
2022.07.11 - [운영체제/리눅스] - [리눅스] GCC 입문
2022.07.13 - [운영체제/리눅스] - [리눅스] GDB 디버거 _1
2022.07.24 - [운영체제/리눅스] - [리눅스] GDB디버거_2
2022.07.24 - [운영체제/리눅스] - [리눅스] Make 및 Makefile
쉘스트립트 개요
쉘 스크립트는 쉘이나 명령어 줄 인터프리터에서 돌아가도록 작성되었거나 운영 체제를 위해 쓰인 스크립트,
단순 도메인 고유언어로 여기기도하고 쉡스크립트가 수행하는 일반기능으로, 실행, 문자열 출력
장점
쉡 스크립트는 다른 프로그램 언어의 같은 코드로 쓰인 것보다 훨씬 더 빠른 경우가 있다.
다른 해석 언어에 비해 쉘스크립트는 컴파일 단계가 없기 때문에 디버킹 하는 동안 빠르게 동작한다.
단점
스크립트 내에 많은 명령어들이 수행될 경우 각 명령어에 대한 프로세스의 필요에 따라 프로세스들이 생성됨을 필요로함 속도가 느려질 수 있다.
단순 쉘 스크립트는 다양한 종류의 유닉스, 리눅스, BSD등 운영체제의 시스템 유틸리티와 잘 호환된다는 장점이 있지만 복잡한 쉘 스크립트의 경우, 유틸리티, 다른 필수 요소 간의 차이가 발생하는 경우 실패가능성이 있다.
쉘 변수
echo "text"
#echo라는 명령어가 수행 / text라느 문자열 표준입력
shvar="text"
##변수선언 주의: "=" 사이에 공백이 없다
echo $shvar
##변수 값 호출은 $를 사용
cp $olddir $newdir
##명렁어들에도 사용가능
$shvar=""
#저장된 값을 지울 수 있다.
mv $myfile #myfile2
#myfile이라는 쉘 변수에 파일이름이 있고 같은 이름을 가지고 있지만 myfile2가 다른 쉘변수라 생각함
mv $myfile ${myfile}2
#와같이 사용가능
$1
#$(number)를 통해 쉘 프로그램 매개변수를 참조할 수 있다.
# $1 첫번째 매개변수 $2는 두전째
$#
#매개변수의 개수
$*
#쉘 프로그램 매계변수 전체 내용
$$
#쉘 프로그램 실행 프로세스 아이디
$!
#쉘프로그램이 실행시킨 백그라운드 ID
$?
#쉘 프로그램이 실행한 프로그램 종료값
의사결정
인수와 변수에 대한 조건부 테스트를 수행하고 결과에 따라 다른 명령을 실행할 수 있다.
#!/bin/bash
if["$1"="fork"]
then
echo "fork not allowed."
exit
elif['$1'="knife"]
then
echo "knife not allowed."
exit
else
echo "fork & knife not allowed"
fi
echo "spoon please"
###
chmod +x 스트립트네임.sh
case 문법
----
case "$1"
in
"fork") echo "fork"
exit;;
"knife") echo "knife"
exit;;
*) echo "fork&knife"
esac
======
반복분
----
for var in vari vari2
do
command
done
while [condition]
do
command
done
함수
func_name()
{
command
}