31장. 쉘 프로그래밍과 환경설정파일
학습목표
- 쉘 스크립트에 대한 기본 지식을 익힌다.
- 익힌 지식으로 리눅스의 로그인시 구동되는 환경설정파일을 이해한다.
● 쉘 프로그래밍 (쉘 스크립트)
- C/C++, Java
→ 주 용도 : 새로운 프로그램을 작성
- 쉘 프로그래밍
→ 주 용도 : 리눅스 작업을 편리하고 효율적으로 하기 위한 용도
→ 쉘 프로그래밍으로 작성된 파일을 쉘 스크립트 또는 쉘 프로그램이라 부른다.
→ DOS의 .bat 파일과 개념이 비슷하지만, 훨씬 강력한 프로그래밍 기능이 존재
● 처음 만드는 쉘 프로그램
- 작성방법
→ # vi hello.sh -> 소스코드 입력 후 저장
- 실행 1
→ # chmod 755 hello.sh
→ # ./hello.sh
- 실행 2
→ # sh hello.sh 또는 # bash hello.sh
[실습]
vi hello.sh
위와 같이 입력한다.
hello.sh 파일을 만들고 실행해보자.
./hello.sh
허가가 거부되었다.
이유는 실행권한이 없기 때문이다.
chmod 755 hello.sh
./hello.sh
hello.sh의 권한을 755로 바꿔준다.
이제 다시 실행해보면 된다.
chmod 644 hello.sh
hello.sh 파일의 권한을 원래대로 돌려놓아보자.
당연히 ./hello.sh 실행하면 거부된다.
sh hello.sh
bash hello.sh
이 두 명령은 소스코드로 실행하는 것이다.
권한이 없어서 실행할 수 있다.
● 변수
- 쉘에서 변수를 사용하기 전에 미리 선언하지 않는다
대신에, 변수에 초기값 부여시 생성.
- 모든 변수는 숫자값을 가지는 경우에도 스트링으로 간주
- 대소문자를 구분
- 값을 대입시에는 "변수명=값"의 형식
- 변수를 사용할 때는 "$변수명"형식 또는 "${변수명}"형식
→ # testVal=Hello
→ # echo $testVal
→ # testVal="Yes Dear"
→ # echo $testVal
→ # echoVal=7+5
→ # echo $testVal
● 환경 변수
● 파라미터 변수
● if 구문
if condition
then
statements
else
statements
fi
vi test.sh
test.sh 파일을 만들고 위와같이 편집을 하고 저장후 나온다.
각각 실행해보면 제대로 결과가 나오는 것을 볼 수 있다.
단, 위와 같이
elif["$answer"="no"]
이 부분처럼 띄어쓰기를 안하게되면
위와같은 에러가 나버리니 꼭 주의하자.
elif^[^"$answer"^=^"no"^]
이렇게 띄어쓰기를 제대로 해 주어야 한다.