![한 변수의 이름을 사용하여 다른 변수를 참조하는 방법은 무엇입니까? [복사]](https://linux55.com/image/37799/%ED%95%9C%20%EB%B3%80%EC%88%98%EC%9D%98%20%EC%9D%B4%EB%A6%84%EC%9D%84%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%EB%8B%A4%EB%A5%B8%20%EB%B3%80%EC%88%98%EB%A5%BC%20%EC%B0%B8%EC%A1%B0%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F%20%5B%EB%B3%B5%EC%82%AC%5D.png)
a=2
pt2=3
echo $a
2
echo $pt2
3
어떻게 사용하나요?
echo $pt($a)
pt2
내용을 인쇄하시겠습니까 ?
또 다른 옵션은
b=pt$a
echo $b
pt2
echo $[$b]
3
답변1
a=2
pt2=3
eval "echo \"\${pt$a}\""
3
또는:
b=pt$a
eval "echo \"\${$b}\""
3
다른 방법도 있습니다:
a=2
pt2=3
export "pt$a=$((pt$a + $(echo pt$a)))"
echo $((pt$a))
6
export
eval
나중에 덜 위험한 방식으로 이 방식으로 작업할 수 있지만 필요한 경우 나중에 내보내지 않을 수 있습니다. 그리고 $((
arithmetic = 할당은 ))
현재 쉘의 현재 명령에 영향을 미치므로 값이 숫자인 경우 직접 변수 할당이 여전히 더 안전합니다.
변수 할당을 두 번 평가하는 데 사용되는 쉘의 .dot
및 도 있습니다 .<<HEREDOCS
var1=var2 ; . <<HEREDOC /dev/stdin
$var1=val
HEREDOC
echo $var2
val