Bash 스크립팅 입문
Alex Scriven
Data Scientist
다른 언어와 비슷하게, 등호로 변수를 할당합니다.
var1="Moon"
그다음 $ 표기법으로 참조합니다.
echo $var1
Moon
변수 이름은 자유롭게 정하되 의미 있게 지정하십시오:
firstname='Cynthia' lastname='Liu'echo "Hi there" $firstname $lastname
Hi there Cynthia Liu
두 변수 모두 출력되었습니다.
$를 빠뜨리면 변수로 인식되지 않습니다!
firstname='Cynthia'
lastname='Liu'
echo "Hi there " firstname lastname
Hi there firstname lastname
Bash는 변수 생성 시 공백에 엄격합니다. 공백을 넣지 마십시오!
var1 = "Moon"
echo $var1
script.sh: line 3: var1: command not found
Bash에서는 따옴표 종류에 따라 의미가 달라집니다. 변수 생성과 출력 모두에서 그렇습니다.
'sometext') = 셸이 내용을 그대로 해석합니다"sometext") = $와 백틱 제외하고 그대로 해석합니다마지막 방식은 아래의 ‘셸 안의 셸’을 만듭니다. 명령줄 프로그램 호출에 유용합니다. 백틱으로 합니다.
서로 다른 변수 생성 방식의 효과를 살펴보겠습니다
now_var='NOW'now_var_singlequote='$now_var' echo $now_var_singlequote
$now_var
now_var_doublequote="$now_var"
echo $now_var_doublequote
NOW
백틱을 보여주기 위해 date 프로그램을 사용하겠습니다
이 프로그램의 일반 출력:
date
Mon 2 Dec 2019 14:07:10 AEDT
이제 셸 안의 셸을 사용해 보겠습니다:
rightnow_doublequote="The date is `date`."
echo $rightnow_doublequote
The date is Mon 2 Dec 2019 14:13:35 AEDT.
date가 호출되어 출력이 캡처되고 echo와 인라인으로 결합되었습니다.
셸 안의 셸을 사용했습니다!
백틱 표기법에는 동등한 방식이 있습니다:
rightnow_doublequote="The date is `date`."
rightnow_parentheses="The date is $(date)."
echo $rightnow_doublequote
echo $rightnow_parentheses
The date is Mon 2 Dec 2019 14:54:34 AEDT.
The date is Mon 2 Dec 2019 14:54:34 AEDT.
둘 다 동일하게 동작하지만 백틱은 구식입니다. 현대에는 괄호 방식이 더 많이 쓰입니다. (참고: http://mywiki.wooledge.org/BashFAQ/082)
Bash 스크립팅 입문