변수 연결의 변수

변수 연결의 변수

나는 이것이 매우 간단한 문제라고 생각하지만 그것을 작동시킬 수는 없습니다. 다음과 같은 전체 변수 목록이 있습니다.

SP60=OLA SP61=BYE SP62=TRT

특정 수의 변수에서 호출하는 루프를 만들고 싶기 때문에 간단한 해결책은 다음과 같습니다.

for i in {60..62}; do SP=$"SP$i"; echo $SP.txt; done

원래 예상했던 결과는 다음과 같습니다.

OLA.txt BYE.txt TRT.txt

하지만 난 이해해

SP60.txt...

이 작업을 수행하는 쉬운 방법이 있는지 궁금합니다.

답변1

다음 bash/ ksh스크립트를 고려하십시오.

SP60="OLA"
SP61="BYE"
SP62="TRT"

for (( i = 60; i <= 62; ++i )); do
    typeset -n var="SP$i"
    printf 'SP%d = %s.txt\n' "$i" "$var"
done

다음이 출력됩니다.

SP60 = OLA.txt
SP61 = BYE.txt
SP62 = TRT.txt

이름으로 변수를 참조합니다 ( in 또는 with varinside and 를 사용하여 선언 ). 즉, 역참조될 때마다 참조하는 변수의 값으로 확장됩니다.declare -nbashtypeset -nbashksh

답변2

변수가 초기화된 후의 또 다른 옵션:

for i in $SP{60..62}; do echo $i.txt; done

관련 정보