본문 바로가기

[Linux]

[Linux] 리눅스 Shell Script 기본

반응형

Shell

 - Shell이란 유닉스 리눅스 환경의 대화형 사용자 인터페이스를 말한다.

 - 운영체계의 바깥 계층에 위치하며, 사용자와 커널의 의사소통을 담당

 - cshell, bourneshell, bashshell, tcshell, kornshell, 등 다양한 종류가 있음

 - shell도 하나의 프로세스이다.

 

 - 사용자가 입력하는 명령어를 이해하고, 실행하는 역할

 - 파이프, 리다이렉션, 백그라운드 프로세스 처리 
 - 시그널 처리

 

Bash Shell 변수

 

지역 변수: 자신을 생성한 Shell 프로세스 안에서만 사용할 수 있다.

putty  접속 1개 > shell process 1개

다른 putty 접속에서 생성한 지역변수는 다른 putty 접속에서는 사용할 수 없다.

 

환경 변수 : 자신을 생성한 Shell뿐만 아니라, 이로부터 파생되어 나온 자식 프로세스에서도 사용할 수 있다.

다른 putty 접속에서 생성한 환경변수도 마찬가지로 다른 putty 접속에서는 사용할 수 없다.

 

영구적으로 사용할 변수

vi /root/.bash_profile (사용자의 스켈파일)

사용자별로 환경변수를 편집할 수 있다.

source /root/.bash_profile

편집한 .bash_profile를 로드시켜준다.

 

변수 명칭 표준

변수 이름에는 알파벳 “a~z”, “A~Z”, “0~9”, 언더스코어( _ )로 이루어진 총 63개의 문자를 사용 할 수 있으며, 변수명의 첫 글자는 반드시 알파벳 혹은 밑줄문자 ( _ )이어야 한다.

 

변수에 값 할당하기

등호( = )를 사용하며, 등호( = ) 양쪽에는 공백이 올 수 없다.

 

지역 변수 선언 : # A=Linux | # declare B=Shell

환경 변수 선언 : # export NAME=“YSY“

환경 변수 선언 : # declare -x TEST=“hello“

환경 변수 치환 : # export –n “환경변수” | # declear –a “환경변수”

변수 목록 출력 : # env | # printenv | # export

변수 출력 예시 : # echo $A | # echo $B | # echo $NAME

 

 


# mkdir /shell

# cd /shell

# vi /test.sh

변수만들고 출력하는 간단한 작업들

모든 쉘스크립트는 어떤 쉘에서 실행할것인지 명시 shell bin code

shell script 는 프로그램 개발용이 절대 아니다.

어떤 반복적이고 정형화된 작업을 편하게 수행하기 위해서 사용하는것

최대한 간결하고 쉽게 작성하는게 중요하다.

 

EX) lst=$(ls -l)

> ls -l 명령어를 수행하고 lst에 저장해라

EX) date=$(date)

> date 명령어를 수행하고 date에 저장해라

 

기본적으로 실행 권한이 빠져있다.

실행 결과

file1 파일까지 생성되었다.

 


 

/u : 사용자

/h : 호스트

/W : working dir

/T : time

 

 


# vi /shell/calc.sh

간단한 연산

echo -n > 라인변경안하겠다.

read num1 > num1 변수에 첫번째 값 저장 (문자열로 인식)

`` > (' ' 홑따옴표 아님)

*와 ()는 리눅스에서 기능을 수행하고있기 때문에 이스케이프문자(\)가 필요하다.

 

실행권한 부여하고 실행

 


# vi /shell/arg.sh

인자값 지정

readonly > text는 상수

$0 > 쉘스크립트의 파일이름 자동으로 저장된다.

$1 > 저장되는 인자값 순서대로 1부터 저장된다.

 

실행권한 부여하고 실행

인자값을 지정하지 않고 실행했을 때     /      인자값을 지정하고 실행했을 때

 


# vi /shell/arr.sh

배열 생성

()를 사용하면 배열로 인식 

띄어쓰기로 구분

echo ${#arr1[@]} 

@ : 배열 그룹 전체 선택

# : 배열 속 데이터 갯수

 

실행권한 부여하고 실행

 


반응형