将上面的shell脚本重构,增加每行执行结果的判断,如果执行失败及时退出
时间: 2024-04-14 19:29:39 浏览: 20
好的,我可以帮您重构脚本,增加每行执行结果的判断,并在执行失败时及时退出。以下是重构后的脚本:
```shell
#!/bin/sh
set -e
# 安装插件
cd /root/mysql
if [ ! -e ./sharutils-4.6.1-2.x86_64.rpm ]; then
echo 'sharutils文件不存在!'
exit 1
fi
echo 'sharutils开始安装...'
rpm -ivh sharutils-4.6.1-2.x86_64.rpm
echo 'sharutils安装完成...'
# 安装 MySQL 8
if [ ! -e ./mysql8.0.19_64-636.sh ]; then
echo 'mysql8.sh文件不存在!'
exit 1
fi
if [ ! -e ./mysql8.0.19_64-636.sh.sha256 ]; then
echo 'mysql8.sha256文件不存在!'
exit 1
fi
echo '准备安装mysql8...'
sh ./mysql8.0.19_64-636.sh || { echo 'mysql安装失败!'; exit 1; }
echo 'mysql安装完成...'
# 执行重启不需验证
/topwalk/baseapp/bin/mysqld restart --skip_grant_tables
# 安装 tcl
sh ./tcl-install.sh || { echo 'tcl安装失败!'; exit 1; }
echo 'tcl安装完成...'
# 安装 expect
sh ./expect-install.sh || { echo 'expect安装失败!'; exit 1; }
echo 'expect安装完成...'
# 创建 mysql 用户,授权
sh ./initdb.sh || { echo 'mysql用户创建,授权失败!'; exit 1; }
echo 'mysql用户创建,授权完成...'
ln -s /topwalk/baseapp/bin/mysqld /etc/init.d/
sed -i '/MYSQL_HOME/d' /etc/profile
echo "export MYSQL_HOME=/topwalk/baseapp/mysql" >> /etc/profile
echo 'export PATH=$PATH:$MYSQL_HOME/bin' >> /etc/profile
systemctl enable mysqld
source /etc/profile
service mysqld restart
# 初始化库
/topwalk/baseapp/mysql/bin/mysql -udms -ptRstOpwalkroot0823 < topsql/CREATE_TOPBASIC.sql
/topwalk/baseapp/mysql/bin/mysql -udms -ptRstOpwalkroot0823 < topsql/CREATE_TOPDMS.sql
/topwalk/baseapp/mysql/bin/mysql -udms -ptRstOpwalkroot0823 < topsql/CREATE_TOPUIS.sql
# 初始化表
/topwalk/baseapp/mysql/bin/mysql -udms -ptRstOpwalkroot0823 TOPBASIC < topsql/TOPBASIC.sql
/topwalk/baseapp/mysql/bin/mysql -udms -ptRstOpwalkroot0823 TOPDMS < topsql/TOPDMS.sql
/topwalk/baseapp/mysql/bin/mysql -udms -ptRstOpwalkroot0823 TOPUIS < topsql/TOPUIS.sql
# 安装 nginx
cp -dpRf ./nginx /usr/local/
useradd nginx -m -d /usr/local/nginx/ -s /bin/bash
chown -R nginx.nginx /usr/local/nginx
echo '脚本执行完成!'
```
在这个重构后的脚本中,我们使用了 `set -e` 来设置在任何命令失败时立即退出脚本。并且,在每个关键步骤后都加入了判断,如果命令执行失败,就会输出错误信息并退出脚本。
希望这次的重构能满足您的需求。如果有任何问题,请随时告诉我。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)