shell(17):卸载和安装客户端shell脚本

2022/03/29日记录

编写自动化代码,需要通过shell脚本,自动卸载和安装客户端,由此编写此shell脚本。

需求:

卸载和安装客户端

1、卸载原有的安装目录和文件,写成函数

2、重新安装,写成函数

整体脚本如下:

包括:

1、判断是否是目录,然后删除

2、查看包含关键字的目录,然后遍历删除(这里是for循环)

#!/bin/bash
#Date=20220329
#Author HMF

uninstall_sdk()
{
    pwdDir=`pwd`
    cd $pwdDir
    echo "当前工程目录:"$pwdDir
	echo "-----------------------卸载SDK---------------------------"

    #删除安装的SDK
    casbDir=`find /opt -name "casb"`
    if [ -d $casbDir ];then
       rm -rf $casbDir
       echo $casbDir"SDK安装目录:/opt/casb存在,进行删除"
    fi

    #删除sdk解压后的目录和文件
	for line in `ls -l |grep ^d |grep "sdk-" |awk '{print $9}'`
	do
		if [ -d $line ];then
			rm -rf $line
			echo "删除目录"$line
		fi
	done
	echo "---------------------------------------------------------"
}

install_sdk()
{
    sdkZip=`ls sdk-*.zip`
    if [  -f "$sdkZip" ]; then
      #SDK解压缩

      echo "-----------------------SDK解压缩---------------------------"
      unzip $sdkZip
      echo "-----------------------------------------------------------"

      #进入安装包目录,执行安装
      sdkDir=`ls -l |grep ^d |grep "sdk-" |awk '{print $9}'`
      cd $sdkDir
      echo "进入SDK客户端解压后的目录:"$sdkDir
      chmod +x sdk-install.sh
      echo "----------------------shell脚本安装SDK---------------------"

      sudo sh sdk-install.sh
      echo "-----------------------------------------------------------"

      #加载环境变量
      source /etc/profile
      echo "LD_LIBRARY_PATH:"$LD_LIBRARY_PATH

    fi
}


echo "----------------Java调用shell脚本解压/安装SDK客户端,开始-------------------"
uninstall_sdk
install_sdk
echo "----------------Java调用shell脚本解压/安装SDK客户端,结束-------------------"

另外一种while循环:

#删除sdk解压后的目录和文件

sdk_oldDir=$(ls -l |grep ^d |grep "sdk-" |awk '{print $9}')

while read line

do

if [ -d $line ];then

rm -rf $line

echo "删除目录"$line

fi

done <<< "$sdk_oldDir"

其他说明:

可以用命令直接删除:

$ls -l |grep ^d |grep "sdk-" |awk '{print $9}' |xargs rm -rf  

但在脚本中考虑健壮性需要遍历并判断是否是目录再删除。

解释:

$ls -l | grep ^d   --->只列出当前目录的目录

$awk '{print $9}'  -->打印第9个

查找目录两种方式:

方式一:

ls -l |grep ^d |grep "sdk-" |awk '{print $9}'
方式二:

find / -type d -name 'sdk-*'
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

宁宁可可

您的鼓励是我创作的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值