比较while循环中的2个值,一个来自stdout,另一个来自文件

时间:2016-03-19 12:38:25

标签: bash loops syntax while-loop

我有一个while read line循环,我指定$user$quota twhich来自stdout,但我还有另一个服务器的文件,我正在检查是否此文件中存在$user,该文件还包含$user的配额。

我需要将$quota中获得的stdout值与文件中的值进行比较。

示例:

    zmsoap -z GetQuotaUsageRequest -v -u https://$sourceserver:7071/service/admin/soap/ |awk {'print $4" "$5'} | cut -d'"' -f2,4 | sed -r 's/["]+/ /g' | while read line

do {

        user1=`echo $line|cut -f1 -d " "`
        quota1=`echo $line|cut -f2 -d " "`

        echo "$user1 has $quota1 on $sourceserver"
        if grep -q "$user1" "$allremotequotasnew"; then

        echo "OK: $user1 is EXISTING on $destserver"

        else

        echo "ERROR: $user1 NOT FOUND on $destserver" && echo "Creating $user1 on $destserver now..."
        fi

        }
done

任何想法?非常感谢

1 个答案:

答案 0 :(得分:1)

  

该文件看起来像:user33 quota,我需要检查文件中是否存在$ user,如果是,则还要删除它的配额

您可以通过以下脚本剪辑解决此问题。

grep "$user1" "$allremotequotasnew" > /dev/null
if [ $? -eq 0 ];then
   echo "OK: $user1 is EXISTING on $destserver"
   dest_line=`grep "$user1" "$allremotequotasnew"`
   dest_user=`echo $dest_line|cut -f1 -d " "`
   dest_quota=`echo $dest_line|cut -f2 -d " "`
else
   echo "ERROR: $user1 NOT FOUND on $destserver"
fi

dest_user和dest_quota是您要从文件中获取的内容。