반응형
보통의 OS의 경우 대부분 Bash Shell이 기본 Shell이라 bash 기준으로 작성 하면 대부분 잘 작동 한다.
쉡스크립트는 변수, 반복문, 제어문 등의 사용이 가능하며 별도의 컴파일 없이 파일 형태로 바로 실행이 가능하다.
VI 편지기를 이용하여 쉘스크립트를 만들 수 있으며 확장자명은 알기 쉽게 .sh 로 작성 한다.
쉘스크립트 실행 방법
쉘스크립트의 실행 방법은 크게 2가지 이다.
- sh 명령어를 통해 실행방법 이다. 파일 권한에 실행이 없어도 실행 가능.
- 파일 권한에 실행 권한이 있는 경우.
##### 1. sh 명령어로 쉘스크립트 실행
[root@linux ~]# ll hello.sh
-rw-r--r-- 1 root root 102 2022-03-27 13:42 hello.sh
[root@linux ~]# cat hello.sh
#!/bin/sh
echo "사용자이름 :" $USER
echo "홈디렉토리 :" $HOME
echo "현재 시간 :" $(date)
[root@linux ~]# sh hello.sh
사용자이름 : root
홈디렉토리 : /root
현재 시간 : 2022. 03. 27. (일) 13:43:30 EDT
##### 2. 실행 권한이 있는 경우 실행
[root@linux ~]# chmod +x hello.sh
[root@linux ~]# ll hello.sh
-rwxr-xr-x 1 root root 102 2022-03-27 13:42 hello.sh
[root@linux ~]# ./hello.sh
사용자이름 : root
홈디렉토리 : /root
현재 시간 : 2022. 03. 27. (일) 13:43:47 EDT
변수 선언
변수는 선언이 가능하며 모든 변수는 문자열로 취급하며 대소문자를 구별한다.
$를 하려면 '$'나 \$로 해줘야 문자로 인식 한다.
[root@linux ~]# cat name.sh
#!/bin/sh
name="Min Su" #### 변수 선언
echo $name #### 변수 출력
echo "$name" #### 변수 출력
echo '$name' #### 문자열 $name 출력
echo \$name #### 문자열 $name 출력
echo 당신의 이름은? #### 문자열 당신의 이름은? 출력
read name #### name에 입력한 값 선언
echo 나의 이름은 $name 입니다. #### 입력한 값 출력
echo 나의 이름은 '$name' 입니다. #### 문자열 출력
[root@linux ~]# sh name.sh
Min Su
Min Su
$name
$name
당신의 이름은?
Losa
나의 이름은 Losa 입니다.
나의 이름은 $name 입니다.
숫자 변수 선언
변수에 들어가는 값은 숫자
수식에 괄호 또는 곱하기는 그 앞에 역슬래쉬(\)를 꼭 붙임.
*연산자 마다 띄워 쓰기 해야함. 안그럼 오류남
[root@linux ~]# cat num.sh
#!/bin/sh
num1=12345 #### 12345 변수 선언
num2=$num1+1111 #### 문자열로 인식 띄워쓰기 하면 오류남
echo $num1
echo $num2
num3=`expr $num1 + 1111` #### + 연산 + 앞뒤로 띄워 쓰기 해야함
echo $num3
num4=`expr \( $num1 + 12345 \) \* 1 / 2` #### 각연자자 마다 띄워쓰기
echo $num4
[root@linux ~]# sh num.sh
12345
12345+1111
13456
12345
파라미터 변수
파라미터 변수는 $0, $1, $2 ... 등 의 형태를 가졌고 전체 파라미터는 $*로 표시
[root@linux ~]# cat para.sh
#!/bin/sh
echo "파라마티 값 : $0"
echo "파라마티 값 : $1"
echo "파라마티 값 : $2"
echo "파라마티 값 : $3"
echo "전체 값 : $*"
[root@linux ~]# sh para.sh 1 2 3 4
파라마티 값 : para.sh
파라마티 값 : 1
파라마티 값 : 2
파라마티 값 : 3
전체 값 : 1 2 3 4
반응형
'★━Server OS〃 > 1. Linux' 카테고리의 다른 글
Oracle Linux8 Linux7 LocalRepo 설정하기 (0) | 2023.11.03 |
---|---|
VirtualBox에서 Shared Folder 설정하기 (0) | 2022.12.21 |
[OEL7] OEL7 Single Booting 및 password 복구 (0) | 2021.12.29 |
[OEL7] Linux 7 GUI 설치 ("Graphical Administration Tools", "Server with GUI ") (0) | 2021.04.21 |
ssh 접속시 pw 안물어보기 (0) | 2017.08.02 |
댓글