bash 쉘 스크립트 중에서...

vananamilk의 이미지

#! /bin/bash
 
S1=AAA
S2=BBB
S3=CCC
Sx=ZZZ
 
for i in $(seq 1 1 x);
do
    echo {$S$i}
done

안녕하세요.

위와 같이 반복하면서 S1, S2, S3, Sx를 출력하고 싶은데 뜻대로 되지가
않네요... 스트링을 조합한 후 대치할 수 있는 방법 없나요?
C는 매크로가 ##을 지원하잖아요... 그런거와 같이요...

제가 방법을 잘못 사용하고 있는걸까요? 답변 부탁드립니다.

planetarium의 이미지

배열로 만들면 간단히 해결할수 있습니다.

#!/bin/bash
S[1]=AAA
S[2]=BBB
S[3]=CCC
S[4]=ZZZ
 
for i in $(seq 1 1 4);
do
    echo ${S[$i]}
done
ymir의 이미지

#! /bin/bash
 
S1=AAA
S2=BBB
S3=CCC
Sx=ZZZ
 
IDX="1 2 3 x"
 
for i in $IDX
do
    eval echo \${S${i}}
done

되면 한다! / feel no sorrow, feel no pain, feel no hurt, there's nothing gained.. only love will then remain.. 『 Mizz 』

되면 한다! / feel no sorrow, feel no pain, feel no hurt, there's nothing gained.. only love will then remain.. 『 Mizz 』

bushi의 이미지

bash 2 이상.

for i in $IDX
do
    VAR=S$i
    echo ${!VAR}
done

OTL
vananamilk의 이미지

답변 감사드립니다^^^