自己写的第二个shell脚本,以备日后学习用
#!/bin/bash
dateDir=`date +"%Y-%m-%d"`
vibSrcDir=/home/ben/single/vib_src
outputDir=/home/ben/single/output
vibStart="<vibID>"
vibEnd="</vibID>"
filelist=`ls $vibSrcDir`
for filename in $filelist
do
echo $filename
vid=`vibauthor -i -v $vibSrcDir/$filename | grep "VIB ID" | awk '{print $3}' `
vibId=$'\\\t\\\t'${vibStart}${vid}${vibEnd}
echo $vibId
name=`vibauthor -i -v $vibSrcDir/$filename | grep Name: | awk '{print $2}' `
echo $name
version=`vibauthor -i -v $vibSrcDir/$filename | grep Version: | awk '{print $2}' `
echo $version
desc=$'\\\t\\\t'$"There are one provider/driver in the bundle:\\n"
desc=$desc$'\\\t\\\t\\\t'$name$" "$version$";"$'\\n'
newOutputDir=$outputDir/$dateDir/$name
mkdir -p $newOutputDir/vib
sed '/<vibList>/a '"$vibId"'' /home/ben/a_1.xml > $newOutputDir/a_2.xml
sed -i '/<description>/a '"$desc"'' $newOutputDir/a_2.xml
cp $vibSrcDir/$filename $newOutputDir/vib
vibpublish -b $newOutputDir/a_2.xml -t ESXi,5.5.0 -v $newOutputDir/vib/ -e $newOutputDir/lenovo_extension_$name-20170118.zip -g $newOutputDir/lenovo_extension_$name-20170111_metadata.zip --vendor-code=LNV -n Lenovo
done
两处sed命令执行前后的对比:
<description>
</description>
<description>
There are one provider/driver in the bundle:
qlogic-nx2-provider 550.2.8.5-000000;
</description>
<vibList>
</vibList>
<vibList>
<vibID>qlogic_bootbank_qlogic-nx2-provider_550.2.8.5-000000</vibID>
</vibList>