반응형
Notice
Recent Posts
Recent Comments
Link
Today
Total
07-05 05:44
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Archives
관리 메뉴

iOS 개발 기록 블로그

Linux 쉘(shell) 스크립트 정의, 종류, 사용 방법(예) 본문

Linux

Linux 쉘(shell) 스크립트 정의, 종류, 사용 방법(예)

crazydeer 2022. 2. 17. 22:00
반응형

쉘(Shell)이란 무엇인가?

운영체제에서 제공하는 명령어와 프로그램을 실행하는 인터페이스

출처: https://jhnyang.tistory.com/57

 

Shell 스크립트란?

인터프리터 역할을 하는 것으로 시스템에서 지원하는 명령어들의 집합을 묶어서 프로그램화한 것

 

Shell의 종류

1. Bourne Shell

2. C Shell

3. Korn Shell

4. bash Shell

예) #!/bin/bash: 쉘 중에 bash 쉘을 쓰겠다는 의미

 

Shell Script 프로그래밍이란?

1. C언어와 유사하게 프로그래밍이 가능

2. 변수, 반복문(loop), 제어문(if) 사용 가능

3. 별도의 컴파일 없이 텍스트 파일 형태로 바로 실행 가능

4. vi나 gedit으로 작성 가능

5. 리눅스의 많은 부분이 Shell script로 작성되어 있음

 

Shell script 작성하고 실행하는 법

$ vi a.sh

위와 같이 치면 vi편집기라고 메모장 같은 거라고 보시면 돼요. 그 메모장으로 a.sh파일을 생성해서 수정할 수 있는 거죠.

vi편집기가 나오면 'a' 키를 눌러서 편집모드로 바꿔주시고 아래와 같이 입력합시다.

호스트 이름은 리눅스 컴퓨터의 이름을 말합니다.

echo "host name is " $HOSTNAME

 

Vi 편집기 내용

입력하고 어떻게 나오냐고요?

esc 연타해서 편집모드를 꺼주고 클론(:)을 눌러주면 하단에 입력이 될 거예요.

거기에 :wq 이렇게 하고 나오시면 됩니다.

w(write)

q(quit)

이거일 것 같아요 제 생각에는 ㅋㅋㅋㅋㅋ TMI지만 뭔가 단축키를 쓰다 보면 그 단축키가 뭘 줄인 말인지 자꾸 유추하게 되더라고요 ㅋㅋ 아무튼 저장하고 vi편집기에서 나가 집니다.

 

그런 다음에 아래와 같이 실행해보면

$ sh a.sh

host name is 

이렇게 나오고 만다.

 

권한을 확인해볼게요.

$ ./a.sh

-bash: ./a.sh: Permission denied

 

$ ls -l a.sh

-rw-r--r-- 1 ~~~~~ oinstall ~~~~~~~ a.sh

 

이렇게 권한이 없다고 나오므로 

chmod로 소유자에게 위 a.sh 파일의 권한을 줘봅시다.

$ chmod u+x a.sh

$ ./a.sh

host name is [ 호스트 이름 ]

위와 같이 결과가 나오시면 제대로 하신 겁니다.

 

변수 사용법

1. 모든 변수는 '문자열(string)'로 취급

2. 변수 이름은 대소문자를 구분

3. 변수에 값을 대입할 때는 '=' 좌우 공백이 없어야 함

4. 변수를 출력하려면 앞에 $를 붙이고 echo 명령어로 출력

5. 사칙연산을 위해서는 echo 말고 expr을 사용해준다

6. 수식에 곱하기를 쓰려면 \* 이렇게 써야 함

 

실습해보면 똑같이 Vi 편집기를 열어줍니다.

$ vi a.sh

 

a로 편집 모드 변경 후 아래와 같이 써줍니다.

위에 쓰여있는 것과 같이 변수를 생성해줄 때 = 양 옆에 공백은 없어야 합니다.

 

num1=100
num2=200
echo $num1
echo $num2
expr $num1 + $num2
expr $num1+$num2

 

vi 편집기 이미지

그리고 :wq로 나와주고 ./a.sh 해보시면 결과가 아래와 같이 나옵니다.

100

200

300

100+200

변수 생성할 때랑 달리 수식에서는 + 양 옆에 공백을 줘야 제대로 계산되고 붙이는 경우 문자 그대로 출력합니다.

 

곱셈의 경우 아래와 같이 하시면 됩니다.

 

shell script 사칙연산 중 곱셈

 

그런 다음 $ ./a.sh 해주시면 결과는

20000이 나옵니다.

 

그럼 전 이만 (ㅈㅅ)

반응형