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
환경 변수들의 목록을 확인 할 수 있다.
반응형