linux - shell 脚本编译安装Nginx,如何判断有没有出错(编译或安装这些)?
黄舟
黄舟 2017-04-17 16:44:54
[Linux讨论组]

这是我的install.sh

#!/bin/sh

# linux上nginx,php,mysql集成环境
# Author salamander

basepath=$(cd `dirname $0`; pwd)

# 1. nginx安装

yum install -y gcc gcc-c++

# pcre安装
tar -zxvf pcre-8.40.tar.gz
cd ./pcre-8.40
./configure --prefix=/usr/local/pcre-8.40
make
make install

cd $basepath

# zlib安装
tar -zxvf zlib-1.2.11.tar.gz
cd ./zlib-1.2.11
./configure --prefix=/usr/local/zlib-1.2.11
make
make install

cd $basepath

# openssl安装,注意openssl是./config
tar -zxvf openssl-1.1.0e.tar.gz
cd ./openssl-1.1.0e
./config  
make
make install

cd $basepath

# nginx安装 注意 --with-pcre=  --with-zlib  指的是源码路径
tar -zxvf nginx-1.10.3.tar.gz
cd ./nginx-1.10.3
./configure --prefix=/usr/local/nginx-1.10.3 --with-pcre=./../pcre-8.40  --with-zlib=./../zlib-1.2.11
make
make install

echo 'Nginx installed successfully!'

最后一句话不管正确错误都会出现,这就不好了,怎么解决呢?

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回复(4)
巴扎黑

开头加一行 set -e, 如果有命令返回非0则立刻停止

迷茫

shell里面,如果执行成功返回"0",执行失败,返回非零数。

echo $?
阿神

./configure & make & make install & echo ...

第一个命令执行成功了才会执行第二个,第二个执行成功了才会执行第三个。第三个执行成功了才会执行第四个

大家讲道理
# pcre安装
./configure --prefix=/usr/local/pcre-8.40
make && make install || exit

# zlib安装
./configure --prefix=/usr/local/zlib-1.2.11
make && make install || exit

# openssl安装
./config
make && make install || exit

# nginx安装
./configure --prefix=/usr/local/nginx-1.10.3 --with-pcre=./../pcre-8.40  --with-zlib=./../zlib-1.2.11
make && make install

if [[ $? == 0 ]]; then
    echo 'Nginx installed successfully!'
else
    echo 'xxxx'
fi
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号