天天看點

shell程式設計_Shell 程式設計小案例

為什麼要進行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 '[email protected],@ @g'`
        shift 2
        ;;
-del|--delete)
        DELETE=1
        DELETEUSERS=`echo $2 | sed '[email protected],@ @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大神進階​zhuanlan.zhihu.com

shell程式設計_Shell 程式設計小案例