大怪! 2018-11-29 11:19 采纳率: 0%
浏览 808

请问我在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条回答

  • Linda_ak 2018-11-30 02:54
    关注

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

    评论

报告相同问题?

悬赏问题

  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥15 stable diffusion
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件