Search
Duplicate
🕺

쉘 스크립트 변수 사용하기

간단소개
Web 개발 좀 잘하고 싶다아!
팔만코딩경 컨트리뷰터
ContributorNotionAccount
주제 / 분류
Shell
Scrap
태그
shell
9 more properties

변수 활용법

(1) 변수 선언하기

쉘스크립트에서도 변수를 사용할 수 있습니다.
변수명=값 으로 변수를 선언하고, 사용할때는 앞에 $를 붙여줍니다.
중괄호를 이용하는 방법도 있습니다. ${변수} 식으로 중괄호로 묶어서 사용합니다.
#!/bin/bash h="hi" b="bye" echo "${h},${b}" printf "%s,%s" $h,$b
Bash
복사

(2) 외부 변수 만들기

export 는 외부변수로 선언을 위한 키워드입니다. 선언된 변수는 다른 프로그램에서도 사용 가능하죠.
그 변수를 다른 스크립트에서 사용할 수 있는 겁니다.
text.txt 는 변수 선언하고 export를, text2.txt는 그 변수를 출력하는 쉘 스크립트입니다.
#text.txt
#!/bin/bash export MY_Var="KS" ./text2.txt
Bash
복사
#text2.txt
#!/bin/bash echo ${MY_Var}
Bash
복사
같은 폴더 안에 이 두 파일을 만들어줬다면, ./text.txt 만 불러줘도 KS 라는 값이 출력됩니다.
전역 변수로 MY_Var 을 만들어준 후 text2 를 불러줬기 때문이죠.
ksnotebook@KSnotebookui-MacBookPro linux % ./text.txt KS
Plain Text
복사

(3) 매개변수 활용하기

쉘에서 스크립트로 매개변수를 보내줄 수도 있어요.
./text.txt aaa bbb
이런 식으로 공백을 가지고 aaa 와 bbb 라는 매개변수를 보내줬어요.
이들을 '위치 매개변수'라고 한답니다.
이들을 받아내기 위해서 스크립트는 어떻게 짜야 할까요?
바로 이렇게!!
# text.txt
#!/bin/bash echo "script name:${0}" echo "매개변수 갯수 :${#}" echo "전체 매개변수 값 : ${*}" echo "전체 매개변수 값2 : ${@}" echo "매개변수 1 : ${1}" echo "매개변수 2 : ${2}"
Bash
복사
여기서 ${~~} 들의 의미는 다음과 같아요.
$0 : 현재 쉘 스크립트의 이름 $# : 위치 매개변수의 총 개수 $*  : 모든 위치 매개변수 $@ : 큰 따옴표를 사용하였을 때를 제외하고는 $*와 동일한 의미 $1 ... ${10} : 사용가능한 위치 매개변수
Plain Text
복사
따라서 위 스크립트를 쉘에서 실행한다면 다음 결과가 나온답니다.
매개변수 갯수 :2 전체 매개변수 값 : aaa bbb 전체 매개변수 값2 : aaa bbb 매개변수1:aaa 매개변수2:bbb
Plain Text
복사
<출처>