Computer >> 컴퓨터 >  >> 프로그램 작성 >> BASH 프로그래밍

쉘 스크립팅의 '리눅스 변수' 이해 및 쓰기 – 파트 10

Linux 쉘 스크립팅 언어는 항상 뜨거운 주제였으며 앞으로도 항상 있을 것입니다. 셸 스크립팅 언어는 마술적이며 다른 언어와 마찬가지로 스크립팅 언어로 프로그램을 수행하기가 매우 쉽습니다. 그러나 우리가 하고 있는 일과 예상되는 결과에 대한 심층적인 지식이 필요합니다.

쉘 스크립팅의  리눅스 변수  이해 및 쓰기 – 파트 10

독자를 위해 작성한 모든 쉘 스크립팅 기사는 마지막 "리눅스 변수에 대한 통찰력"을 포함하여 높이 평가됩니다. 마지막 기사를 새로운 레벨로 확장합니다.

변수 속성

Linux 환경의 각 변수에는 특정 옵션이 있으며 이를 '속성'이라고 합니다. 이 옵션이나 속성은 켜기로 설정할 수 있습니다. 및 끄기 , 상황에 따라 "선언" 명령을 사용하여 필요할 때.

변수 속성의 예는 '-i라는 스위치를 사용하는 것입니다. ' 해당 변수에 대한 정수 속성을 켭니다. 스위치 '-i에 숫자가 아닌 값이 전달되더라도 ' 오류 메시지가 표시되지 않고 '0이 출력됩니다. ' 정수 해석으로. 아래의 예를 보면 더 명확해집니다.

변수 정수 선언, bill =121

[email protected]:~$ declare -i bill=121

가변 청구서의 값을 인쇄합니다.

[email protected]:~$ printf "%d\n" "$bill" 

121

변수 값을 문자열로 설정합니다. Bill 변수는 이미 선언되어 있으므로 두 번째로 선언할 필요가 없습니다. 변수의 값을 다음과 같이 변경하십시오.

[email protected]:~$ bill=tecmint

이제 가변 bill의 값을 다시 인쇄하십시오.

[email protected]:~$ printf "%d\n" "$bill" 

0

알림 '0 ' 오류 메시지 대신

이미 선언된 변수의 속성을 어떻게 알 수 있습니까?
[email protected]:~$ declare -p bill 

declare -i bill="121"

여기서 -p (인쇄물을 나타냄) 스위치가 구출됩니다.

변수의 속성을 끄려면 어떻게 해야 하나요?

끄기를 전환하려면 변수의 속성에 필요한 것은 + (플러스 ) 스위치 바로 앞의 기호. 아래의 예를 보면 더 명확해집니다.

스위치 끄기 위의 변수에 대한 정수 속성입니다.

[email protected]:~$ declare +i bill

변수의 값을 확인하세요.

[email protected]:~$ printf "%d\n" "$bill" 

bash: printf: bill: invalid number
0

이제 스위치 문자열을 사용하여 변수의 값을 인쇄하십시오.

[email protected]:~$ printf "%s\n" "$bill" 

tecmint

위의 예에서 bash는 숫자가 아닌 값을 오류로 판단할 수 없었지만 printf 숫자가 될 수 있는 것과 될 수 없는 것을 해석하는 것입니다.

읽기 전용 변수

읽기 전용 메모리(ROM ), 하지만 읽기 전용 변수란 무엇입니까? ROM과 유사한 점이 있습니까?

읽기 전용 메모리와 같은 읽기 전용 변수는 한번 할당되면 값을 변경할 수 없는 것입니다. 따라서 읽기 전용이라고 합니다. 해당 변수에 대한 새 값을 작성, 편집 또는 수정할 수 없습니다. 다음은 예시를 사용한 예시입니다.

읽기 전용 선언(-r ) 변수 이름, 값은 "Tecmint.com"입니다.

[email protected]:~$ declare -r name="Tecmint.com"

위에서 선언한 변수의 값을 출력합니다.

[email protected]:~$ printf "%s\n" "$name" 

Tecmint.com

변수의 값을 변경해 보십시오.

[email protected]:~$ declare -r name="Avishek" 

bash: declare: name: readonly variable

위에서 논의한 바와 같이 읽기 전용 변수의 속성은 '+를 사용하여 변경할 수 있습니다. ' 기호.

Linux에서 변수 내보내기

쉘 스크립트에 선언된 모든 쉘 변수는 스크립트가 실행될 때까지 사용할 수 있습니다. 스크립트 외부에 스크립트의 변수가 존재하지 않습니다. 스크립트 외부에서 변수를 사용할 수 있도록 하는 프로세스를 변수 내보내기라고 합니다.

declare -x 스위치를 사용하여 셸 외부로 변수를 내보낼 수 있습니다. (내보내기), 내보내려는 셸을 확인합니다. 선언 내보내기 스위치를 다음과 같이 사용할 수 있습니다.

[email protected]:~$ declare -x variable=”Constant_Value”

스크립트가 실행되는 동안 변수에 대한 모든 변경 사항은 변수를 스크립트 외부로 내보낼 때 손실됩니다. 쉘 스크립팅에서 변수 내보내기는 매우 중요합니다.

읽기 전용이고 스크립트 외부에서 사용할 수 있는 변수를 원합니다. -r 스위치를 사용해야 합니다. 스위치 -x 동시에.

[email protected]:~$ declare -rx variable=”Constant_Value”

환경 변수

프로그램과 이를 실행하는 프로그램 간에 공유되는 변수입니다. 환경 변수는 내보낼 수 있지만 속성을 할당할 수는 없습니다.

위의 이론을 실제로 이해합니다. 여기에 두 개의 스크립트 0.sh가 있습니다. 및 1.sh .

# 0.sh
#!/bin/bash 
declare -rx name=Tecmint 
bash 0.sh 
exit 0

그리고 두 번째 스크립트는 입니다.

# 1.sh
#!/bin/bash 
printf "%s\n" "$name" 
name=Tecmint.com 
printf "%s\n" "$name"
exit 0

여기서 무슨 일이 일어나고 있는지는 변수(이름)가 읽기 전용으로 선언되고 내보내지고 두 번째 스크립트가 호출된 직후입니다.

두 번째 스크립트는 첫 번째 printf에서 내보낸 첫 번째 스크립트의 변수를 방금 인쇄했습니다. 성명. 두 번째 printf 문에서 변수 'name에 할당된 새 값을 보여줍니다. '.

변수가 읽기 전용이었으므로 어떻게 재할당할 수 있는지 걱정할 필요가 없습니다. "스크립트가 실행되는 동안 변수에 대한 모든 변경 사항은 변수를 스크립트 외부로 내보낼 때 손실됩니다."를 기억하지 않습니까?

참고자료

선언 명령은 아래의 모든 스위치와 그 조합을 허용합니다.

  1. -a :배열을 선언합니다.
  2. -f :표시 기능 및 정의.
  3. -F :기능 이름을 표시합니다.
  4. -r :변수를 읽기 전용으로 선언합니다.
  5. -x :변수를 내보내기 가능으로 선언합니다.
  6. -나 :변수를 정수로 선언합니다.

지금은 여기까지입니다. 바로 다음 기사에서 우리는 'eval을 사용하여 변수를 대체하는 방법에 대해 논의할 것입니다. ' 명령 및 이 항목을 닫기 전에 bash에 이미 정의된 변수. 사람들이 스크립팅에 대한 심층적인 여정을 즐기고 있기를 바랍니다. 그때까지 계속 지켜봐주시고 Tecmint.com에 접속하세요. .