키보드 입력을 읽고 이를 로컬 변수에 할당하려면 어떻게 해야 합니까?

키보드 입력을 읽고 이를 로컬 변수에 할당하려면 어떻게 해야 합니까?

다음과 같은 매우 간단한 스크립트가 있습니다.

#!/bin/bash

read local _test
echo "_test: $_test"

이것이 출력입니다.

$ ./jltest.sh
sdfsdfs
_test: 

_test변수가 단지 지역 변수이길 원합니다 . 가능합니까?

답변1

로컬 내장 기능은 함수 내부에서만 작동합니다. 스크립트에 설정한 모든 변수는 명시적으로 언급하지 않는 한 이미 스크립트에 "로컬"입니다 export. 따라서 제거하면 예상대로 작동합니다.

#!/bin/bash

read _test
echo "_test: $_test"

아니면 함수로 바꿀 수도 있습니다:

my_read () {
  local _test
  read _test
  echo "_test: $_test"
}

함수 내부에서도 local내장 함수는 작성한 대로 작동하지 않습니다.


귀하의 코드는 실제로 다음과 같은 이름의 변수를 설정합니다 local.

#!/bin/bash

read local _test
echo "_test: $_test"
echo "local: $local"

$ ./script.sh
sssss aaaaa
_test: aaaaa
local: sssss

관련 정보