我有以下循环:
for a in var1 var2;
do
direst=$theDir/$a
cd $direst
case $a in
var1)
theUsrs=$VAR1usrs
csvFile="$theDate"__"$b"_.csv
sleep 5s
;;
var2)
theUsrs=$VAR2usrs
csvFile="$theDate"_$(echo $b |awk -F, '{print $1}')__$(echo $b |awk -F, '{print $2}')_.csv
sleep 5s
;;
esac
for b in $theUsrs;
do
echo " "
echo $b $a $direst $csvFile
sleep 2s
cd $direst
if [[ ! -f $csvFile ]];
then
missingUsr=$b
echo "$csvFile is missing, creating empty file"
createMissing"$a"File
fi
cd $direst
gzip -v $csvFile
echo "Uploading $csvFile to New Edge"
uploadFile
done
done
exit
(uploadFile和createMissing" $ a"文件是我之前创建的函数)
现在,就像我在这里看到的那样,我需要为每个VAR创建2个不同的循环,因为$b
(我脚本中的第二个循环变量)在循环开始之前无法解析,所以我需要分别为每个var确定$csvFile
。
我也不能将case语句嵌套在第二个循环中,因为$theUsers
尚未确定。
有没有办法让$b
中的$csvFile
仅在第二个循环开始时被解析(就像批量中的EnableDelayedExpantion一样)?