백틱 안의 변수 값은 왜 변경되지 않나요?

백틱 안의 변수 값은 왜 변경되지 않나요?

이것은 내 테스트 코드입니다.

a=1
echo $a
echo `let ++a`
echo $a

내가 보는 출력은 1, 입니다 1. 세 번째 줄이 값을 수정하지 않는 이유는 무엇입니까 a?

답변1

`...`는 $(...)와 동일하므로 하위 쉘입니다. 서브쉘에서 변경된 변수는 서브쉘이 닫히면 손실됩니다.

답변2

다음과 같이 변수를 추가할 수 있습니다.

a=1
((a++))
echo $a
2

이는 다음보다 "C 스타일" 증분에 더 가깝습니다.

let a++

Ipor Sircer의 답변 보기귀하의 방법이 작동하지 않았습니다!

관련 정보