请问我在shell中该如何判断这些源码包是否存在?

今天才发现的问题,我用 find 查找一个 文件包是否存在 然后 查看返回值都是 0 这样子就没有办法准确的查找,而且自己写的shell 只是固定找到前一个包才能找后一个包,不能一起找,然后把没有的包显示,

我想知道的是 我该如何查找一台未知电脑中的这些个安装包,并且判断哪些包不在,并显示出来这些不在的包是什么,求教,谢谢

以下是我自己写的shell,感觉很麻烦而且还不能从根本上结局问题

#!/bin/bash
#寻找源码安装包

httpd=httpd-2.2.17.tar.gz
cmake=cmake-2.8.6.tar.gz
mysql=mysql-5.5.22.tar.gz
libmcrypt=libmcrypt-2.5.8.tar.gz
mhash=mhash-0.9.9.9.tar.gz
mcrypt=mcrypt-2.6.8.tar.gz
php=php-5.3.28.tar.gz
zend=ZendGuardLoader-php-5.3-linux-glibc23-x86_64.tar.gz
phpadmin=phpMyAdmin-4.2.5-all-languages.tar.gz

find / -name "$httpd"
if [ ! $(echo $?) -z ];then
find / -name "$cmake"
if [ $(echo $? ) -eq 0 ];then
find / -name "$mysql"
if [ $(echo $? ) -eq 0 ];then
find / -name "$libmcrypt"
if [ $(echo $? ) -eq 0 ];then
find / -name "$mhash"
if [ $(echo $? ) -eq 0 ];then
find / -name "$mcrypt"
if [ $(echo $? ) -eq 0 ];then
find / -name "$php"
if [ $(echo $? ) -eq 0 ];then
find / -name "$zend"
if [ $(echo $? ) -eq 0 ];then
find / -name "$$phpadmin"
if [ $(echo $? ) -eq 0 ];then
echo "安装包齐全"
else
echo "$phpadmin not find"
fi
else
echo "$zend not find"
fi
else
echo "$php not find"
fi
else
echo "$mcrypt not find"
fi
else
echo "$mhash not find"
fi
else
echo "$libmcrypt not find"
fi
else
echo "$mysql not find"
fi
else
echo "$cmake not find"
fi
else
echo "$httpd not find"
fi

1个回答

可以用shell数组啊,把包名写在字符串数组里,然后for遍历一遍,没有找到的打印就行了

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问