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