변수 이름에 변수가 포함되어 있습니다.

변수 이름에 변수가 포함되어 있습니다.

for루프를 사용하여 일부 값을 에코 하려고 합니다 .

hwEventType.txt다음을 포함합니다:

11000
11002
11004
11006
13025
13026

암호:

for event in $(cat /path/hwEventType.txt)
do
eval miny_"$event"_2001=`cut -f4 -d"|" /path/G_2001_DCC_ErrorCode_STAT_"$event"_"$filedate1".txt | sort -n | head -1`
done

filedate1오늘 날짜야

G_2001_DCC_ErrorCode_STAT_"$event"_"$filedate1".txt 파일에는 다음 정보가 포함되어 있습니다.

20180205 2356|2001|11000|24034
20180205 2357|2001|11000|24441
20180205 2358|2001|11000|25039
20180205 2359|2001|11000|24637
20180206 0000|2001|11000|24795
20180206 0001|2001|11000|23979
20180206 0002|2001|11000|24081
20180206 0003|2001|11000|24103
20180206 0004|2001|11000|23634
20180206 0005|2001|11000|23926

나는 다음을 수행하고 싶습니다 :

for event in $(cat /path/hwEventType.txt); do echo "$minx_$event_2001"; done

하지만 빈 행이 있습니다.

이름에 변수가 포함된 변수를 사용할 수 있는 방법이 있나요?

답변1

이를 달성하기 위한 가능한 방법:

  • 중간 변수 이름을 사용하십시오.

    $(cat /path/hwEventType.txt)의 이벤트에 대해 echo myvar="minx_$event_2001";

  • 루프에서 별도의 변수 대신 테이블을 사용하여 콘텐츠를 저장/검색합니다.

    미니[$event]=$(cut -f4 - ... )

그런 다음

echo ${miny[$event]}

관련 정보