ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

两集合比较判断

2021-04-25 12:07:34  阅读:138  来源: 互联网

标签:更新包 判断 stats tgz client file 集合 DATA 比较


在生产环境下,有时我们会使用脚本来进行包的更新。这就涉及到一个问题:假如同时更新几十上百个包,我们要使用脚本中某个指定参数来完成,偶尔犯错就有可能将更新包遗漏一两个。因此,我们需要进行判断,提示遗漏的包,只要包有所遗漏就不进行更新,所有包齐全才会进行更新。

具体需求如下:

1)脚本名为update,指定参数为client;

2)更新包所在目录为 /data ;

3)更新包分别是agent-client.tgz 、 manager-client.tgz 、merchant-client 、online-client.tgz 、partner-client.tgz

4)全部更新包都存在才进行更新,否则不更新

参考脚本如下:

#!/bin/bash#判断更新包是否遗漏DATA=/data
client_all="$DATA/agent-client.tgz  $DATA/manager-client.tgz  $DATA/merchant-client.tgz  $DATA/online-client.tgz  $DATA/partner-client.tgz"client="`find  $DATA -name "*-client.tgz"`"if [ "$1" = "client" ];then
	for file_all in $client_all
	do
    	stats=0
		sum=0    	for file_client in $client
    	do
        	if [ "$file_all" == "$file_client" ];then
            	stats=1            	break
            	return $stats
        	fi
    	done
		sum=$[ $sum + $stats ]
		
    	if [ "$stats" == 1 ];then
        	echo -e "\033[36m $file_client 已存在 \033[0m"    
    	else
        	echo -e "\033[31m $file_all 不存在 \033[0m"
    	fi
	done
	if [ "$sum" < 5 ];then             #5个更新包,有一个包不存在,则sum会小于5,直接不更新
		break
	else
		具体更新操作	fifi$1		

说明:

其实是两个集合的比较判断,类似求两集合的差集,双循环判定更新包是否存在。若全部存在,则进行更新;否则不更新,同时提示遗漏的更新包。


标签:更新包,判断,stats,tgz,client,file,集合,DATA,比较
来源: https://blog.51cto.com/u_10272167/2730762

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有