나는 이러한 변수를 가지고
a1=0.017
a2=0.2
a3=10.7
a4=20.9
a5=35.4
for ((x=1; x<=5; x++))
do
for i in a${x}
do
echo "Welcome $i times"
done
done
출력은 다음과 같아야 합니다.
"Welcome 0.017 times"
"Welcome 0.2 times"
"Welcome 10.7 times"
"Welcome 20.9 times"
"Welcome 35.4 times"
하지만 내 현재 출력은
Welcome a1 times
Welcome a2 times
Welcome a3 times
Welcome a4 times
Welcome a5 times
a1을 "10" 형식의 $a1로 어떻게 인쇄합니까?
그렇지 않으면 다음을 수행해야 합니다.
for i in $a1 $a2 $a3 $a4 $a5
do
echo "Welcome $i times"
done
문제는 "a" 변수가 100개가 넘고 위의 마지막 옵션을 사용할 수 없다는 것입니다.
"루프" 외부의 새로운 제안도 좋습니다.
매우 감사합니다
답변1
귀하의 요청을 이행하는 것은 어렵지 않습니다.
a1=0.017
a2=0.2
a3=10.7
a4=20.9
a5=35.4
for ((x = 1; x <= 5; x++)); do
var="a${x}"
echo "Welcome ${!var} times"
done
a
그러나 배열 변수를 만드는 것이 더 쉽습니다.
a=(
0.017
0.2
10.7
20.9
35.4
)
for x in "${a[@]}"; do
echo "Welcome ${x} times"
done