Unix / Linux-쉘 변수 사용

이 장에서는 Unix에서 쉘 변수를 사용하는 방법을 배웁니다. 변수는 값을 할당하는 문자열입니다. 할당 된 값은 숫자, 텍스트, 파일 이름, 장치 또는 기타 데이터 유형일 수 있습니다.

변수는 실제 데이터에 대한 포인터 일뿐입니다. 셸을 사용하여 변수를 생성, 할당 및 삭제할 수 있습니다.

변수 이름

변수 이름에는 문자 (a-z 또는 A-Z), 숫자 (0-9) 또는 밑줄 문자 (_) 만 포함될 수 있습니다.

관례에 따라 Unix 쉘 변수의 이름은 대문자로 표시됩니다.

다음 예제는 유효한 변수 이름입니다-

_ALI
TOKEN_A
VAR_1
VAR_2

다음은 잘못된 변수 이름의 예입니다-

2_VAR
-VARIABLE
VAR1-VAR2
VAR_A!

다음과 같은 다른 문자를 사용할 수없는 이유 !, *, 또는 - 이 문자는 쉘에 대해 특별한 의미가 있다는 것입니다.

변수 정의

변수는 다음과 같이 정의됩니다-

variable_name=variable_value

예를 들면-

NAME="Zara Ali"

위의 예는 변수 NAME을 정의하고 여기에 "Zara Ali"값을 할당합니다. 이 유형의 변수가 호출됩니다.scalar variables. 스칼라 변수는 한 번에 하나의 값만 보유 할 수 있습니다.

Shell을 사용하면 원하는 값을 변수에 저장할 수 있습니다. 예를 들면-

VAR1="Zara Ali"
VAR2=100

값 액세스

변수에 저장된 값에 액세스하려면 이름 앞에 달러 기호 ($) −

예를 들어, 다음 스크립트는 정의 된 변수 NAME의 값에 액세스하여 STDOUT에 인쇄합니다.

#!/bin/sh

NAME="Zara Ali"
echo $NAME

위의 스크립트는 다음 값을 생성합니다.

Zara Ali

읽기 전용 변수

Shell은 읽기 전용 명령을 사용하여 변수를 읽기 전용으로 표시하는 방법을 제공합니다. 변수가 읽기 전용으로 표시된 후에는 해당 값을 변경할 수 없습니다.

예를 들어, 다음 스크립트는 NAME의 값을 변경하는 동안 오류를 생성합니다.

#!/bin/sh

NAME="Zara Ali"
readonly NAME
NAME="Qadiri"

위의 스크립트는 다음 결과를 생성합니다-

/bin/sh: NAME: This variable is read only.

변수 설정 해제

변수를 설정 해제하거나 삭제하면 쉘이 추적하는 변수 목록에서 변수를 제거하도록 지시합니다. 변수 설정을 해제하면 변수에 저장된 값에 액세스 할 수 없습니다.

다음은 다음을 사용하여 정의 된 변수를 설정 해제하는 구문입니다. unset 명령-

unset variable_name

위의 명령은 정의 된 변수의 값을 설정 해제합니다. 다음은 명령이 어떻게 작동하는지 보여주는 간단한 예입니다.

#!/bin/sh

NAME="Zara Ali"
unset NAME
echo $NAME

위의 예는 아무것도 인쇄하지 않습니다. unset 명령을 사용하여unset 표시된 변수 readonly.

변수 유형

쉘이 실행 중일 때 세 가지 주요 유형의 변수가 있습니다.

  • Local Variables− 지역 변수는 쉘의 현재 인스턴스 내에 존재하는 변수입니다. 쉘에 의해 시작된 프로그램에는 사용할 수 없습니다. 명령 프롬프트에서 설정됩니다.

  • Environment Variables− 환경 변수는 쉘의 모든 자식 프로세스에서 사용할 수 있습니다. 일부 프로그램은 올바르게 작동하기 위해 환경 변수가 필요합니다. 일반적으로 쉘 스크립트는 실행되는 프로그램에 필요한 환경 변수 만 정의합니다.

  • Shell Variables− 쉘 변수는 쉘에 의해 설정되고 올바르게 작동하기 위해 쉘에 필요한 특수 변수입니다. 이러한 변수 중 일부는 환경 변수이고 다른 변수는 지역 변수입니다.