这是我的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!'
最后一句话不管正确错误都会出现,这就不好了,怎么解决呢?
# 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
./configure & make & make install & echo ...
第一个命令执行成功了才会执行第二个,第二个执行成功了才会执行第三个。第三个执行成功了才会执行第四个
shell里面,如果执行成功返回"0",执行失败,返回非零数。
echo $?
开头加一行 set -e
, 如果有命令返回非0则立刻停止