1、计算100以内所有能被3整除的整数之和
答:
#定义颜色变量
Green='e[1;32m'
End='e[0m'
#定义2个整数变量
n=1
sum=0
#循环判断n是否能被3整除,并求sum
while ((n<=100));do
if ((n%3==0));then
let sum+=n
fi
let n++
done
echo -e "100内能被3整除的整数之和为:$Green$sum$End"
演示结果:
2、编写脚本,求100以内所有正奇数之和
答:
#定义颜色变量
Green='e[1;32m'
End='e[0m'
#循环判断n,求sum
for((n=1,sum=1;n<=100;n+=2));do
let sum+=n
done
echo -e "100以内正奇数之和为:$Green$sum$End"
演示结果:
3、随机生成10以内的数字,实现猜数字游戏,提示比较大或小,相等则退出
答:
#定义颜色变量
Red='e[1;31m'
Green='e[1;32m'
End='e[0m'
#定义被猜的数字
num=$[RANDOM%10]
#循环猜测,猜对退出
while true;do
read -p "请猜测一个10内的正数:" guess
if ((guess>num));then
echo -e "$Red大了些,请重猜$End"
continue
elif ((guess<num));then
echo -e "$Red小了些,请重猜$End"
continue
else
echo -e "$Green恭喜你,猜对了$End"
break
fi
done
演示结果:
:
4、编写函数、实现两个数字为参数,返回最大的值
答:
#定义颜色变量
RED='e[1;31m'
GREEN='e[1;32m'
END='e[0m'
max_num () {
#判断参数个数
[ $# -ne 2 ] && echo -e "$RED请输入并且只输入2个数字$END" && exit 1
#比较2个参数的大小
if [ $1 -ge $2 ];then
max=$1
else
max=$2
fi
echo -e "$GREEN最大值max=$max$END"
}
max_num $*
演示结果:
5、编写一个httpd安装脚本
答:
set -ue
#定义颜色变量
RED='e[1;31m'
GREEN='e[1;32m'
END='e[0m'
#指定下载路径URL,包文件名FILE,解压后目录名DIR
URL=http://mirrors.aliyun.com/apache/httpd/httpd-2.4.43.tar.bz2
FILE=`echo $URL | sed -r 's#.*/(.*)#1#'`
DIR=`echo $FILE | sed -r 's#(.*).tar.*#1#'`
#编译安装
cd /usr/src
[ -f $FILE ] || wget $URL
tar xf $FILE
cd $DIR
yum install -y make gcc autoconf apr-devel apr-util-devel pcre-devel openssl-devel redhat-rpm-config
./configure --prefix=/apps/httpd --sysconfdir=/etc/httpd --enable-ssl
make && make install
echo -e "${RED}httpd服务已安装完毕$END"
#配置环境
echo PATH=/apps/httpd/bin:$PATH > /etc/profile.d/httpd.sh
echo -e "$RED需要重新读取配置文件/etc/profile.d/httpd.sh,使环境配置生效$END"
#配置帮助文件
sed -i.bak '22a MANDATORY_MANPATH /apps/httpd/man' /etc/man_db.conf
#指定apache用户运行
id apache &> /dev/null || useradd -r -s /sbin/nologin -d /var/www apache
sed -i.bak 's#^User.*#User apache#;s#^Group.*#Group apache#' /etc/httpd/httpd.conf
#启动httpd
/apps/httpd/bin/apachectl start
echo -e "${GREEN}httpd服务已经启动,请登陆网页查看$END"
演示结果: