为什么要进行shell编程?
在Linux系统中,虽然有各种各样的图形化接口工具,但是shell仍然是一个非常灵活的工具。Shell不仅仅是命令的收集,而且是一门非常棒的编程语言。您可以通过使用shell使大量的任务自动化,shell特别擅长系统管理任务,尤其适合那些易用性、可维护性和便携性比效率更重要的任务。
创建一个脚本 admin.sh
完成如下作用:
-h | --help : 提供帮助信息
--add Users : 完成用户添加
-del User | --delete : 完成用户删除
-v : 开启调试模式,显示信息
可以同时使用以上所有命令:
#!/bin/bash
#
DEBUG=0
ADD=0
DELETE=0
for i in `seq 1 $#`
do
case $1 in
-h|--help)
echo "--v --help --add --delete --userlist"
;;
-v|--versbo)
DEBUG=1
shift
;;
--add)
ADD=1
ADDUSERS=`echo $2 | sed 's@,@ @g'`
shift 2
;;
-del|--delete)
DELETE=1
DELETEUSERS=`echo $2 | sed 's@,@ @g'`
shift 2
;;
*)
# echo 'Usage : `basename $0` --add USERLIST --delete USERLIST --v|--verbose --help'
# exit 7
;;
esac
done
if [ $ADD -eq 1 ]
then
for USER in $ADDUSERS
do
if id $USER &> /dev/null
then
[ $DEBUG -eq 1 ] && echo "$USER is exists!"
else
useradd $USER
[ $DEBUG -eq 1 ] && echo "$USER add succefully!"
fi
done
fi
if [ $DELETE -eq 1 ]
then
for USER in $DELETEUSERS
do
if id $USER &> /dev/null
then
userdel $USER
[ $DEBUG -eq 1 ] && echo "$USER delete successfully!"
else
[ $DEBUG -eq 1 ] && echo "$USER not exist!"
fi
done
fi
随机生成10个用户,并随机生成10位密码,把生成后的用户名和密码保存到文件
ADDUSER(){
USER=$1
PASSWD=$2
useradd $1 && echo $1:$2 | chpasswd
echo User:$1 pass:$2 >> /home/eko/test/user.log
}
DELUSER(){
USER=$1
userdel $1
}
OPREATE=$1
if [ $OPREATE == 'add' ]
then
for((i=0;i<10;i++))
do
ADDUSER "eko$i" `openssl rand -base64 10`
done
elif [ $OPREATE == 'del' ]
then
for((i=0;i<10;i++))
do
DELUSER "eko$i"
done
else
echo "参数错误"
fi
以上内容希望帮助到大家,很多PHPer在进阶的时候总会遇到一些问题和瓶颈,业务代码写多了没有方向感,不知道该从那里入手去提升,对此我整理了一些资料,包括但不限于:分布式架构、高可扩展、高性能、高并发、服务器性能调优、TP6,laravel,YII2,Redis,Swoole、Swoft、Kafka、Mysql优化、shell脚本、Docker、微服务、Nginx等多个知识点高级进阶干货需要的可以免费分享给大家,需要戳这里PHP进阶架构师>>>视频、面试文档免费获取
或 者关注我每天分享技术文章
进阶PHP架构师www.zhihu.com