shell은 운영체제상에서 사용자가 입력하는 명령을 읽고 해석하여 대신 실행해주는 프로그램이다. 즉 다시 말해서, 운영체제의 커널과 사용자 사이를 이어주는 역할을 하며 사용자의 명령어를 해석하고 운영체제가 알아들을 수 있도록 도와주는 명령어 해석기이다.Linux에서 사용하는 Shell의 종류로는 다음과 같은 것들이 있다.
Shell Script(쉘 스크립트)란 Shell(쉘)에서 사용할 수 있는 명령어들의 조합을 모아서 만든 배치(batch)파일이다. 즉, 운영체제의 Shell을 이요하여 한 줄씩 순차적으로 읽으면서 명령어들을 실행시켜주는 인터프리터 방식의 프로그램이다. Shell Script를 활용하여 묶어진 명령어 조합을 수행하거나 반복적인 명령어를 단일 명령으로 쉽게 사용할 수 있다.
Shell Script 파일의 기본 구조는 다음과 같다.
#!/bin/bash
echo "Hello Linux!!"
CentOS 환경에서 vi 에디터를 이용하여 "Hello Linux!!"를 출력해주는 script.sh라는 Shell Script파일을 만들어주었다. 파일의 내용을 보면 첫번째 줄에 #!/bin/bash를 적어주었는데 , 이것은 Unix 계열 Shell Script 파일의 필수적인 구문이다. Sharp(#) + bang(!)의 합성어로 Shebang 이라고 칭하는데 , Script 파일의 최상단에 해당 파일을 해석해줄 인터프리터의 절대경로를 지정해주는 것이다. 위의 예시는 bash를 Shell의 인터프리터로 지정한 것이다.
Shell Script 파일을 실행 시키기 위해서는 파일을 vi 에디터로 작성한 후 실행권한을 부여해야한다. 따라서 아래와 갘은 chmod 755 명령어로 실행 권한을 부여한 후 ./[Shell Script 파일명] 명령어를 이용하여 script.sh 에 작성한 echo 명령어가 실행이 되었고 "Hello Linux!!"라는 결과를 확인할 수 있었다.
echo "Echo command" #자동개행
printf "printf command\n" #\n을 이용한
#변수 선언, 대소문자 구분 및 =사이에 공백 X
num=100
str="hello"
# $을 이용한 변수 호출
echo "$num"
echo "$str"
#또는
echo "${num}"
echo "${str}"
#배열선언
arr=("ab" "de" "ef")
echo "${arr[0]}" #인덱스를 사용
echo "${arr[@]}" #전체 원소를 의미
#원소추가
arr+=("gh")
num=5
#if[조건]; then ... elif[조건]; then ... else ... fi 문
if [ "${num}" -eq 2 ]; then
echo "num is 2"
elif [ "${test_num}" -eq 3 ]; then
echo "num is 3"
else
echo "num is not 2 or 3"
fi
#if((산술연산)); then ... elif((산술연산)); then else ... fi문
if (( ${num} > 3 )); then
echo "number is greater than 3"
else
echo "number is not greater than 3"
num=0
while (( "${num}" < 5 )); do
echo "${num}"
(( num = "${num}" + 1 ))
done
#for문
arr=(1 2 3 4 5 6 7)
for i in ${arr[@]}; do
echo "$i"
done
for (( i = 0; i < 10; i++)); do
echo "$i"
done
출처 : https://minkwon4.tistory.com/159