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]}