함수 외부의 변수는 지역 변수가 아니더라도 접근할 수 없습니다.

함수 외부의 변수는 지역 변수가 아니더라도 접근할 수 없습니다.

간단한 bash 스크립트가 있습니다. 내 배쉬 버전은GNU bash, version 4.4.20(1)-release (x86_64-redhat-linux-gnu)

#!/bin/bash
  
func() {
    nlvar="i'm not local variable"
    local lvar="i'm local variable"
}
echo $nlvar
echo $lvar

내가 사용한다면

eval nlvar="i'm not local variable"

또는

export nlvar="i'm not local variable"

아직도 응답이 없습니다

답변1

함수를 호출하지 않으면 전역(정의되지 않음) 범위를 제외하고는 범위가 없습니다.

#!/bin/bash
  
func() { :; }    # define a function

echo $nlvar
echo $lvar

함수를 정의해도 실행되지 않으므로 명령문이 실행될 때 echo두 변수 모두 설정되지 않습니다.

관련 정보