2024. 11. 13. 16:51ㆍ디바이스 드라이버
Shell script란?
터미널에서 실행될 수 있는 명령어를 하나의 파일로 묶어서 실행하기 쉽게 만든 것, 모든 Shell script는 반드시 Shebang (사용할 shell 명시)으로 시작해야한다.
Shebang은 사용할 shell script를 명시하는 것으로 script는 명시된 shell에서 동작하게 된다.
우선 #!은 스크립트의 맨 앞에서 이 파일이 어떤 명령어 해석기의 명령어 집합인지 시스템에게 알려준다.
그 뒤에 나오는 것은 경로명으로, 명령어들을 해석할 프로그램의 위치를 나타낸다.
보통은 #!/bin/sh를 사용하며, /bin/sh는 sh라는 쉘 프로그램의 경로이다. Shebang 이후에 사용할 명령어들을 나열한다.
그 다음 ./<파일 이름>을 입력하면 파일 안의 명령어가 실행이 된다.
반복문
간단한 shell script 사용 예시이다.
list에는 1 2 3 4 5가 저장되어있으며 for문을 통해 var이라는 변수는 차례대로 list안의 값들을 받게 된다. 그 다음 var을 출력한다.
filelist에는 `ls`가 들어가 있는데 `ls`는 현재 디렉토리 안에 있는 파일들이다. for문을 통해 현재 디렉토리 안에 있는 파일들의 이름과 함께 !표가 출력된다.
조건문
반복문을 사용하여 간단한 구구단 예시를 들었다.
s#는 스크립트에 전달된 인자의 개수를 나타내고, $1은 스크립트 실행 시 전달된 첫 번째 인자를 나타낸다.
여기서 if와 elif else를 사용할 수 있는데 if 조건문이 끝나면 fi로 닫아줘야한다.
그다음 조건을 살펴보면 <= , >= 와 달리 -lt -gt가 조건으로 적혀있다.
-gt : > , -ge : >=
-lt : < , -le : <=
-eq(숫자) : == , -=(문자열) : ==
-ne(숫자) : != , -!=(문자열) : !=
-e : 파일이 존재하면 참
-d : 파일이 존재하고 디렉토리면 참
위는 shell script에서 사용하는 이항조건과 단항조건이다.
result 부분에서 `expr $1 \* $var`이라 되어있는데, expr은 사칙연산 명령어로 expr <숫자1> < 연산자> <숫자2>형식으로 넣어줘야한다. 여기서 곱하기는 *가 아닌 \*를 사용한다.
그래서 8을 인자로 넣을 시 8단이 출력된다.
'디바이스 드라이버' 카테고리의 다른 글
리눅스 개발 환경 이해하기 (1) (1) | 2024.11.15 |
---|---|
Shell script (빈 디렉토리에 .gitkeep파일 생성하기 (0) | 2024.11.14 |
필수 적인 리눅스 명령어 (3) (0) | 2024.11.13 |
필수 적인 리눅스 명령어 (2) (0) | 2024.11.12 |
필수 적인 리눅스 명령어 (1) (0) | 2024.11.11 |