나는 이것으로 일하고있다 :
GNU bash, version 4.1.2(1)-release (x86_64-redhat-linux-gnu)
다음과 같은 스크립트가 있습니다.
#!/bin/bash
e=2
function test1() {
e=4
echo "hello"
}
test1
echo "$e"
다음을 반환합니다.
hello
4
그러나 함수의 결과를 변수에 할당하면 전역 변수 e
가 수정되지 않습니다.
#!/bin/bash
e=2
function test1() {
e=4
echo "hello"
}
ret=$(test1)
echo "$ret"
echo "$e"
보고:
hello
2
이 경우 eval 사용에 대해 들었 으므로 다음에서 수행했습니다 test1
.
eval 'e=4'
그러나 같은 결과.
왜 수정되지 않았는지 설명해 주시겠습니까? test1
함수 의 에코를 저장 ret
하고 전역 변수도 수정하려면 어떻게해야합니까?