두 개의 목록에 포함된 일부 값을 두 개의 중첩된 for 루프 내부의 간단한 에코에 전달하려고 합니다(에코는 내부 루프 내부에서 생성되는 내용을 확인하는 데 사용됩니다). 그러나 결과는 예상했던 것과 달랐습니다. 정말 지침이 필요해요!
bash 쉘을 사용하십시오. 이것은 스니펫입니다:
a_list="0.05 0.10"
b_list="120.0 130.0"
c=44
x=555.0
for a in $a_list
do
for b in $b_list
do
echo $x $a $b $c
done
done
나는 이것을 기대한다:
555.0 0.05 120.0 44
555.0 0.05 130.0 44
555.0 0.10 120.0 44
555.0 0.10 130.0 44
하지만 나는 그것을 이해합니다:
555.0 0.05 120.0 44
44.0 0.05 130.0
555.0 0.10 120.0 44
44.0 0.10 130.0
2행과 4행이 잘못되었습니다. 44가 먼저 에코되고 555.0을 덮어쓰는 것 같습니다. 목록의 값을 for 루프에 직접 로드하면 제대로 작동합니다. 이와 같이:
c=44
x=555.0
for a in 0.05 0.10
do
for b in 120.0 130.0
do
echo $x $a $b $c
done
done
도움과 통찰력을 주셔서 감사합니다!
답변1
이전에 언급한 것처럼 코드가 이미 작동하지만 쉘 배열을 사용해 볼 수도 있습니다.
a_list=(0.05 0.10)
b_list=(120.0 130.0)
c=44
x=555.0
for a in "${a_list[@]}"
do
for b in "${b_list[@]}"
do
echo "$x $a $b $c"
done
done