셸은 사용자가 입력한 명령을 해석해 커널로 전달하거나, 커널의 처리 결과를 사용자에게 전달하는 역할을 한다.
Centos에서 기본적으로 사용하는 셸은 bash이다.
bash의 특징
- Alias 기능 (명령어 단축 기능)
- History 기능
- 연산 기능
- Job Control 기능
- 자동 이름 완성 기능
- 프롬포트 제어 기능
- 명령 편집 기능
간단하게 하나 작성 name.sh
- 1행 : 특별한 형태의 주석으로 bash를 사용하겠다는 의미. 첫 행에 꼭 작성해야함
- 2행 : echo 명령은 화면에 출력하는 명령이다. $USER라는 환경 변수의 내용을 출력
- 4행 : 종료코드 반환
작성한 셸 스크립트 실행하기
sh name.sh -> 바로 실행 가능
./name.sh
실행 권한을 먼저 부여하여야 함
chmod +x로 권한 부여
셸 스크립트에서는 변수를 사용하기 전에 미리 선언하지 않으며, 처음 변수에 값이 할당되면 자동으로 변수가 생성된다.
변수에 넣는 모든 값은 문자열로 취급한다. 숫자로 넣어도 문자열 취급
변수 이름은 대소문자를 구분한다.
변수를 대입할 때 = 좌우에는 공백이 없어야 한다 ex) name=shin(o) name = shin(x)
변수의 입력과 출력 : '$'라는 문자가 들어간 글자를 출력하려면 ''로 묶어주거나 앞에 '\'를 붙여야 한다. 또한 ""로 변수를 묶어줘도 되며 묶어주지 않아도 된다.
변수가 들어 있는 값에 사칙연산 등의 연산을 하려면 expr 키워드를 사용하면 된다. 단 수식과 함께 꼭 키보드 1 옆에 있는 역 따옴표로 묶어줘야한다. 또한 수식에 괄호를 사용하려면 그 앞에 꼭 역슬래시를 붙여줘야 한다. 또한 곱하기 기호도 예외적으로 앞에 역슬래시를 붙여줘야 한다.
대부분의 프로그래밍 언어에서 지원하는 if문 기본 구조
if [ 조건 ]
then
참일 경우 실행
fi
if~else문 형식
if [ 조건 ]
then
참인 경우 실행
else
거짓인 경우 실행
fi
for~in문 기본 형식
for 변수 in 값1 값2 값3 .....
do
반복할 문장
done
while문은 조건식이 참인 동안 계속 반복하는 특성을 가진다.
무한 반복하는 것을 볼 수 있다.