이것은 내 테스트 코드입니다.
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의 답변 보기왜귀하의 방법이 작동하지 않았습니다!