Notice
Recent Posts
Recent Comments
Link
250x250
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 리눅스
- subnetmask
- docker network
- REACT
- jenkins github
- vue.js
- gradle
- Jenkins
- spring
- jenkins jdk
- Jenkins Pipeline
- Linux
- jenkins 설치
- MySQL
- jenkins github 연동
- grafana
- JavaScript
- java
- error
- Spring Boot
- jpa
- nginx
- MongoDB
- CI/CD
- Docker
- 리액트
- jenkins install
- IntelliJ
- grpc
- jenkins maven
Archives
- Today
- Total
뭐든 즐기면서 ;)
Linux shell script 기초 문법 본문
728x90
shell에 대한 기본적인 설명
sh는 bourne shell이라고 하며 가장 기본적인 쉘이고, shell의 절대 경로는 '/bin/sh'입니다.
shell이란 사용자와 커널을 연결해주는 인터페이스 역할을 한다고 볼 수 있습니다. 사용자가 shell을 실행시켜 커널에 명령을 하는 것입니다.
sehll은 여러가지 형태로 만들어져 있습니다. 크게 두가지로는 csh와 ksh가 있습니다.
csh는 c언어로 관리자 중심으로 만들어진 shell이고, ksh는 korn shell이라고 불리며 사용자 중심으로 만들어진 shell입니다. csh는 후에 tcsh로 확장이 되었습니다.
linux는 bash라는 shell을 사용하며, bourne again shell의 의미를 가지고 있습니다.
bash는 csh의 관리적인 측면과 ksh의 사용자 편의성 측면을 모두 고려하여 만들어진 shell입니다.
기본 설정
- shell script 파일은 .sh 확장자를 가집니다.
- 실제 코드를 작성하기 전 맨 처음 행에 '#!/bin/bash'를 씁니다. 이는 해당 파일을 bash shell로써 실행시키겠다는 의미입니다.
- 만약 '#!/bin/csh'를 기재한다면 csh shell로 실행시키겠다는 의미가 됩니다.
- 또는 아무것도 기재하지 않으면 default로 bash shell로써 실행되어질 것입니다.
- #은 주석의 의미지만 '#!'는 주석으로 해석되지 않습니다.
- sample.sh 파일을 작성해 봅니다.
#!/bin/bash
echo "Hello, World!"
- 처음 생성한 sh파일에 대해서 실행하기 위해서는 권한을 부여해야 합니다.
- $ chmod 755 sample.sh 명령어 실행 후 ./samle.sh 파일 실행
기본 커맨드
1. 입출력
#!/bin/bash
read NAME
echo "Hello, $NAME!"
- ./sample.sh 실행
- NAME을 Hye로 사용자가 직접 입력
- Hello, Hye! 출력됨.
2. 변수
- 변수의 이름은 영문자, 숫자, 언더바의 조합으로 작성합니다.
- 변수에 값을 대입할 때, '='의 앞,뒤에 공백이 없어야 합니다. (예, var1=value
- 변수를 사용할 때에는 변수명 앞에 '$'를 붙여 사용합니다. 혹은 ${변수명} 형식으로 사용합니다. (예, $var1 / ${var1}
- 변수의 값을 변경하지 못 하도록 하기 위해서는 readonly를 사용합니다.
- 변수 삭제는 unset을 이용하여 삭제할 수 있습니다. 다만, readonly로 선언한 변수는 삭제할 수 없습니다.
#!/bin/bash
var1="변수1"
VAR2="변수2"
echo "var1=$var1 / VAR2=$VAR2"
VAR2="변수2 변경"
echo ${VAR2}
readonly var1
var1="변수1 변경"
echo "var1=$var1"
unset VAR2
echo "VAR2=$VAR2"
3. 인자 전달
- $1~$3 : 첫번째, 두번째, 세번째 인수(파라미터) 전달
- $# : 스크립트에 전달된 인수의 수
- $* : 모든 인수를 한 번에 사용
- $@ : 모든 인수를 각각 처리
- $? : 직전에 실행한 커맨드의 종료 값(0은 성공, 1은 실패)
- $$ : 실행한 shell script의 프로세스 ID
#!/bin/bash
echo "\$0 (스크립트 명) : $0"
echo "\$1 (첫번째 인수) : $1"
echo "\$3 (세번째 인수) : $3"
echo "\$# (인수의 수) : $#"
echo "\$* : $*"
echo "\$@ : $@"
echo $?
728x90
'서버 > Linux' 카테고리의 다른 글
linux 특정 포트 확인 (0) | 2022.07.13 |
---|---|
CentOS 7 방화벽 확인 / linux 방화벽 확인 (0) | 2022.07.12 |
linux cp / 리눅스 복사 (0) | 2022.05.12 |
linux cron / linux crontab (0) | 2022.02.09 |
Linux network 수동 설정 / CentOS 8 network 수동 설정 (0) | 2021.11.22 |
Comments