1. shell script 파일 생성
touch 파일명.sh
2. 파일 실행 권한 부여(chmod)
권한 종류 : r(읽기, 4) / w(쓰기, 2), x(실행, 1)
0 - 7까지 숫자를 통해 권한을 부여할 수 있다.
chmod 755 파일명.sh // 소유자에게는 rwx, 그룹&기타사용자에게는 r-x 권한 부여 chmod +x 파일명.sh // 모든 사용자에게 실행(x)권한 부여
3. vi편집기로 스크립트 작성
vi 파일명.sh // vi편집기로 쉘 스크립트 파일 열기
shell script 상단에 #!/bin/bash 설정 - 해당 스크립트 파일을 bash 쉘로 실행시키겠다는 의미, 만약 다른 쉘로 실행시키고 싶다면 #!/bin/쉘명(ex. tcsh)로 작성하면 된다.
원래 shell script에서 #은 주석을 의미하지만 #!/bin/bash의 #은 주석으로 처리되지 않는다.
#!/bin/bash echo "Hello Linux Sehll Script" printf "Hello Linum Shell Script" // 작동X printf "%s %s %s" Hello Shell Script
4. shell script 파일 실행
# 첫번째 방법 ./파일명.sh # 두번째 방법 sh ./파일명.sh
[결과 출력] Hello Linux Shell Script Hello Linux Shell Script
5. 변수
변수에는 따로 선언문이 없다.
'변수명=값'으로 사용하고, 사용시 공백이 없어야 한다.
변수는 '$변수명' 또는 '${변수명}' 형태로 사용한다.
모두 문자열로 처리된다.
#!/bin/bash num=100 NUM=200 // 변수명은 대소문자 구분이 가능(num != NUM) str="linux" echo "num : $num" // 문자열 안에서 변수 사용 가능 echo "NUM : $NUM" echo "$num + $NUM = `expr $num + $NUM`" // 변수를 숫자로 사용하고 싶으면 expr 명령 사용 echo $((num + NUM)) // 변수에서 바로 수치 계산 echo "str : ${str}" . . . [결과 출력] num : 100 NUM : 200 100 + 200 = 300 300 str : linux
#!/bin/bash str="HelloLinuxShellScript" echo ${#str} // 변수 길이 출력 echo ${str:3} // 특정 위치부터 출력 echo ${str:3:6} // 특정 위치부터 길이만큼 출력 . . . [결과 출력] 21 lloLinuxShellScript lloLin
6. 따옴표
#!/bin/bash value1="Hello" value2="Shell" value3="Script" echo "$value1 $value2 $value3" // 특수기호 동작 echo '$value1 $value2 $value3' // 특수기호를 문자열로 출력 . . . [결과 출력] Hello Shell Script $value1 $value2 $value3
7. 실행 파라미터
#!/bin/bash echo "$1 $2" // 파라미터는 $1 - $9 형태로 받을 수 있다. echo "$*" // 모든 파라미터 echo "$0" // 실행한 파일명
./파일명.sh value1 value2 // shell script 실행할 때 파라미터 값 넘겨주기 . . . [결과 출력] value1 value2 value1 value2 ./파일명.sh
8. 배열
#!/bin/bash arr=(1 2 3) // 배열 선언 # 배열 선언 array[0]="val1" array[1]="val2" array[2]="val3" echo "arr : ${arr[@]}" // @ - 모든 원소 의미 echo "${arr[0]} , ${arr[1]}, ${arr[2]}" echo "----------------------------------------" echo "array : ${array[@]}" echo "${array[0]}, ${array[1]}, ${array[2]}" . . . [결과 출력] arr : 1 2 3 1, 2, 3 ---------------------------------------- array : val1 val2 val3 val1, val2, val3
9. if문
if로 시작해 fi로 마침
then 이하는 참일 경우, else는 거짓일 경우
[]에 조건을 입력할때는 양쪽에 공백 필요
# if문 조건 # 첫번쨰 방법 if [ 조건 ] then ··· elif ··· else ··· fi # 두번째 방법 if [ 조건 ]; then ··· elif ··· else ··· fi
# if문 조건식 # 첫번째 방법 if test 조건식; then ··· fi # 두번째 방법 if [ 조건식 ]; then ··· fi
10. case문
case로 시작해서 esac로 마침
break 대신에 ;; 사용
*은 기대값이 아닐 경우
case 변수 in 기대값1) ... ;; 기대값2) ... ;; 기대값3) ... ;; *) ... esac
11. for문
# 첫번째 방법 for 변수 in 배열 do ... done # 두번째 방법 for 변수 in 배열; do ... done
#!/bin/bash arr=(1 2 3 4) for index in ${arr[@]}; do printf "%d " $index done echo . . . [결과 출력] 1 2 3 4
12. while문
# 첫번째 방법 while [ 조건식 ] do ... done # 두번째 방법 while [ 조건식 ]; do ... done
참고1 , 참고2