관리 메뉴

피터의 개발이야기

[shell] shell 변수 본문

Linux/Shell Script

[shell] shell 변수

기록하는 백앤드개발자 2021. 1. 7. 08:00
반응형

shell 변수에 대해서 공부해 보겠습니다.

변수에는 지역변수와 환변변수, 두가지 종류가 있습니다.

이 변수들을 지우거나 지우지 못하게 막을 수도 있고,

변수들의 목록을 확인하는 방법도 알아보겠습니다.

 

지역(local)변수

지역 변수를 생성한 shell에서만 호출할 수 있습니다.

즉, shell이 실행 당시에 필요한 값만을 선언하여 사용하기에 다른 shell에서 참조를 할 수 없습니다.

 

사용법

#local변수설정
localValue="로컬에서 참조됩니다."

#참조방법
echo $localValue

 

 

환경(public)변수

자신을 선언한 부모 쉘과 이 쉘이 만든 자식 쉡에서도 참조가 가능합니다.

 

사용법

#public변수설정
export publicValue="로컬에서 참조됩니다."

#참조방법
echo $publicValue

 

 

지역변수와 환경변수의 차이를 확인할 수 있는 두개의 쉘을 만들어 테스트를 진행하였습니다.

 

variable.sh

#!/bin/bash
echo "--------------------------"
echo "local 변수 설정"
localValue="로컬에서 참조됩니다."

#참조방법
echo "local변수는 $localValue"

echo "--------------------------"
echo "환변변수 설정"
export publicValue="환경변수입니다."

echo "public변수는 $publicvalue"

#자식 쉘 실행
sh variable2.sh

variable2.sh

#!/bin/bash
echo ""
echo "--------------------------"
echo "여기는 자식 shell입니다."

#지역변수 테스트
echo "--------------------------"
# null 이면 true
if [  -z $localValue ]
then
    echo "로컬변수 참조값이 없습니다."
else
    echo $test
fi

#환경변수 테스트
echo "--------------------------"
# null이 아니면 true
if [  -n $publicValue ]
then
    echo "public 변수는 자식 쉘에서도 실행이 가능한 $publicValue"
else
    echo "환경변수 참조 실패"
fi
echo "--------------------------"

 

실행화면

 

 

unset

선언된 변수들을 삭제하는 방법입니다.

 

#!/bin/bash
echo "--------------------------"
echo "선언된 변수 삭제하기"

localValue="local value"

echo $localValue

unset localValue

echo $localValue

echo "--------------------------"

 

readOnly

한번 선언하고 바뀌어지지 않는 변수, 혹은 변하지 말아야 하는 변수를 지정할 때에 사용합니다.

 

#!/bin/bash
echo "--------------------------"
echo "선언된 변수 삭제금지"

readOnlyValue="readOnly value"
echo $readOnlyValue

#readoly 설정
readonly readOnlyValue

#삭제도 불가능하다.
unset readOnlyValue

#수정이 불가능하다.
readOnlyValue="change value"

echo $readOnlyValue

echo "--------------------------"

 

set

변수들의 목록을 확인할 수 있다.

 

 

env

환경 변수들의 목록을 확인 할 수 있다.

반응형
Comments