Bash의 기본 변수

Bash 스크립팅 입문

Alex Scriven

Data Scientist

변수 할당

다른 언어와 비슷하게, 등호로 변수를 할당합니다.

var1="Moon"

그다음 $ 표기법으로 참조합니다.

echo $var1
Moon
Bash 스크립팅 입문

문자열 변수 할당

변수 이름은 자유롭게 정하되 의미 있게 지정하십시오:

firstname='Cynthia'
lastname='Liu'

echo "Hi there" $firstname $lastname
Hi there Cynthia Liu

두 변수 모두 출력되었습니다.

Bash 스크립팅 입문

$ 표기 누락

$를 빠뜨리면 변수로 인식되지 않습니다!

firstname='Cynthia'
lastname='Liu'
echo "Hi there " firstname lastname
Hi there firstname lastname
Bash 스크립팅 입문

변수 (미)할당

Bash는 변수 생성 시 공백에 엄격합니다. 공백을 넣지 마십시오!

var1 = "Moon"
echo $var1
script.sh: line 3: var1: command not found
Bash 스크립팅 입문

작은따옴표, 큰따옴표, 백틱

Bash에서는 따옴표 종류에 따라 의미가 달라집니다. 변수 생성과 출력 모두에서 그렇습니다.

  • 작은따옴표 ('sometext') = 셸이 내용을 그대로 해석합니다
  • 큰따옴표 ("sometext") = $와 백틱 제외하고 그대로 해석합니다

마지막 방식은 아래의 ‘셸 안의 셸’을 만듭니다. 명령줄 프로그램 호출에 유용합니다. 백틱으로 합니다.

  • 백틱 (`sometext`) = 명령을 실행하고 STDOUT을 변수로 캡처합니다
Bash 스크립팅 입문

다양한 변수 생성

서로 다른 변수 생성 방식의 효과를 살펴보겠습니다

now_var='NOW'

now_var_singlequote='$now_var' echo $now_var_singlequote
$now_var
now_var_doublequote="$now_var"
echo $now_var_doublequote
NOW
Bash 스크립팅 입문

date 프로그램

백틱을 보여주기 위해 date 프로그램을 사용하겠습니다

이 프로그램의 일반 출력:

date
Mon  2 Dec 2019 14:07:10 AEDT
Bash 스크립팅 입문

셸 안의 셸

이제 셸 안의 셸을 사용해 보겠습니다:

rightnow_doublequote="The date is `date`."
echo $rightnow_doublequote
The date is Mon 2 Dec 2019 14:13:35 AEDT.

date가 호출되어 출력이 캡처되고 echo와 인라인으로 결합되었습니다.

셸 안의 셸을 사용했습니다!

Bash 스크립팅 입문

괄호 vs 백틱

백틱 표기법에는 동등한 방식이 있습니다:

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 스크립팅 입문

Ayo berlatih!

Bash 스크립팅 입문

Preparing Video For Download...