bash 쉘을 이용한 스크립트 만들기 #1
0. 개요
우리가 리눅스를 접하게되면 제일 먼제 만나게 되는 것이 bash이다
하지만 우리가 모르는사이에 bash를 이용한 간단한 프로그래밍이나
응용하여 크론에 등록하고 있다
물론 이문서를보는 사람들은 bash가 무엇인지는 알고 있을 것이고
여기서는 bash를 이용한 쉘스크립트를 만들기위한
기초에 대해 간략히 정리하도록 하겠다.
1. 간단한 텍스트 출력하기
우선 bash에서 가장 간단하게 출력 가능한 echo를 이용하여
"bash script test"라는 문구를 출력해보자
# vi test.sh
-------------------------------------------
#!/bin/bash
echo "bash script test"
:wq
리눅스에서 파일을 실행시키기위해서는 실행권한이 있어야 한다
# chmod 0700 test.sh
해당 파일을 실행시킨다.
# ./test.sh
bash script test
2. 변수 지정하기
위에서 보았던것 처럼 "bash script test"를 다시한번 출력할 것이다
하지만 echo에 바로 지정해서 출력하는것이 아니라 변수를 지정하여
출력하도록 해보자
# vi var_test.sh
-------------------------------------------
#!/bin/bash
CHARERS="bash script test"
echo $CHARERS
:wq
리눅스에서 파일을 실행시키기위해서는 실행권한이 있어야 한다
#chmod 0700 var_test.sh
해당 파일을 실행시킨다.
# ./var_test.sh
bash script test
CHARERS라는 변수가 생성되면서 "bash script test" 값으로 지정되었다 .
주의할점은 echo롤 출력시에 $을 빼버리면 "CHARERS" 단어가 출력된다
그리고 변수지정시 "=" 앞뒤로 공백이 들어가면 안된다.
그리고 bash에서도 함수가 있으며 이로인하여 지역변수가 있다
지역변수는 local이라는 명령어를 이용하여 사용한다
간단한예를 설명으로 대신하겠다
# local_var_test.sh
-----------------------------------------------------------------------
#!/bin/bash
CHARERS="bash script test global variables"
function locals {
local CHARERS="bash script test local variables"
echo $CHARERS
}
echo $CHARERS
locals
echo $CHARERS
# ./local_var_test.sh
bash script test global variables
bash script test local variables
bash script test global variables
3. 배열 사용하기
bash의 최신버전에서는 배열을 지원한다
다차원배열을 지원하지는 않지만 1차원 배열은 지원한다 .
특이한점은 중간에 키값이 비어있어도 문제가 되지 않는다
배열의 값을 사용시에는 {}가 필요하다
사용법에 대해 알아보자
# vi array_test.sh
-----------------------------------------------------------------------
#!/bin/bash
vararray[0]="bash "
vararray[1]="script "
vararray[2]="array "
vararray[3]="test"
echo ${vararray[0]}
echo ${vararray[1]}
echo ${vararray[2]}
echo ${vararray[3]}
echo ${vararray[4]}
-----------------------------------------------------------------------
# ./array_test.sh
bash
script
array
test
-----------------------------------------------------------------------
4. 마무리
이번에는 bash를 용한 쉘 프로그래밍을 하기 위한 출력 및
변수 선엔부분에 대해 알아보았다
여지것 배운 다른 언어들과도 크게 차이나지는ㅤㅇㅏㅎ을 것이다
오히려 타입선언등의 부분이 없기 때문에 오히려 더쉬울수도있다
그리고 쉘프로그래밍은 시스템관리시에 유용하게 많이 사용되며
소목적인 반복작업에서 구해줄 친구이다
원문 : https://www.linux.co.kr/home2/board/subbs/board.php?bo_table=lecture&wr_id=1711