CentOS의 /etc/init.d/functions에 다음 코드가 있습니다.쉘 스크립트 : "local foo"와 "local foo ="사이에 차이가 있습니까?
status() {
local base pid lock_file= pid_file=
...
4 개의 변수가 선언됩니다. 두 개가 초기화되지 않았습니다. 기본 및 PID입니다. 그러나 나머지는 빈 값, lock_file 및 pid_file로 초기화됩니다.
다음 코드를 테스트 한 결과 차이점이 없음을 발견했습니다.
local a b=
echo "a is $a, length is ${#a}"
echo "b is $b, length is ${#b}"
그들간에 차이가 있습니까?
로컬 기능입니다, 맞습니까? 'foo'의 값을 함수의 외부에 설정하면 어떻게됩니까? (나는 테스트 할 수있는 bash를 가지고 있지 않다). 행운을 빕니다. – shellter
다른 언어와 마찬가지로 우리는 "local declaration statement"에서 외부 변수를 참조 할 수 없습니다. 따라서 외부 변수와 같은 이름의 로컬 변수를 선언하면 다른 변수로 취급됩니다. – taichino