linuxman在实际的项目脚本中遇到此问题,耗费了一些时间。先来看下间接变量的解释:
假设一个变量的值是第二个变量的名字,举个例子:m=a, a=123,  就是通过m这个变量,来引用123这个值.使用 ${!m} 来调用
在实际的应用中样本为下:

#!/bin/bash
#Author: linuxman release:20171017

date=$1
YEAR=${date:0:4}

for i  in {category,categoryPath,movcatrel,Stbschedual,tshift,vod}
do
category="category_${date}.csv.tar.bz2"
categoryPath="categoryPath_${date}.csv.tar.bz2"
#HLD_BANGLIAN="HLD_BANGLIAN_"${date}".txt.tar.bz2"
movcatrel="movcatrel_"${date}".csv.tar.bz2"
Stbschedual="Stbschedual_"${date}".csv.tar.bz2"
tshift="tshift_"${date}".csv.tar.bz2"
vod="vod_"${date}".csv.tar.bz2"
viewer="viewer_"${date}".tar.bz2"
tar -jxvf /data1/files/njscb/${YEAR}/${date}/export/${!i} -C /data1/files/njscb/${YEAR}/${date}/export/

category="category_"${date}".csv"
categoryPath="categoryPath_"${date}".csv"
#HLD_BANGLIAN="HLD_BANGLIAN_"${date}".txt"
movcatrel="movcatrel_"${date}".csv"
Stbschedual="Stbschedual_"${date}".csv"
tshift="tshift_"${date}".csv"
vod="vod_"${date}".csv"

#rm -rvf /tmpdir
mkdir -p /tmpdir
iconv -c -f GB18030 -t UTF-8 /data1/files/njscb/${YEAR}/${date}/export/${!i} -o /tmpdir/$i

aws s3 rm s3://hdfs/source/320000/${date}/$i.bz2

bzip2 /tmpdir/*

aws s3 cp /tmpdir/$i.bz2 s3://hdfs/source/320000/${date}/
done


12-10 03:24