我想做以下事情:
我已经创建了如下脚本:
#!/bin/sh
CUBE="DAPP TAPP PAPP CAPP"
for C in $CUBE
do
cd /data/testing/$C/
test -f ${C}28052014.zip
if [ $? -eq 0 ]
then
echo "'$C','SUCCESS'" >> /data/testing/out.log
else
cd /archive/logs/$C/
if grep -q 'files have been truncated' $C.log;
then
echo "'$C','TRUNCATED'" >> /data/testing/out.log
else
echo "'$C','FAILED'" >> /data/testing/out.log
fi
fi
done
我面临的问题是......
我的脚本反复检查所有多维数据集名称以执行上述3点中提到的工作,这是不可取的。它应该排除在上一步中所需测试成功的多维数据集名称,并且应该只查看对于最后一步测试不成功的立方体。
答案 0 :(得分:3)
轻微简化。根本不需要嵌套(即elif
,但如果你想要它,请保留它)。间距并不重要,但试图使其更具可读性,并且我不会使用资本变量来避免与环境变量发生冲突。
#!/bin/sh
cube="DAPP TAPP PAPP CAPP"
for c in $cube
do
if [ -f "/data/testing/$c/${c}28052014.zip" ]
then
echo "'$c','SUCCESS'" >> /data/testing/out.log
else
if grep -q 'files have been truncated' "/archive/logs/$c/$c.log"
then
echo "'$c','TRUNCATED'" >> /data/testing/out.log
else
echo "'$c','FAILED'" >> /data/testing/out.log
fi
fi
done