3r2e3123 发表于 2015-1-21 09:35:35

for循环

for 变量 in 列表; do
        循环体
done

生成列表:
        整数列表:
                {NUM1,NUM2}
                seq ] NUM2



例如:
        计算1+...100的值:
                #!/bin/bash
                declare SUM=0
                for I in {1,100} ;do
                        let SUM=4[$SUM+$I]
                done
                echo "the sum is $sum"
               
        依次向/etc/passwd 中的每个用户问好,并显示对方的shell。并统计一共有多少个用户。
                #!/bin/bash
                LINES=`wc -l /etc/passwd | cut -d' ' -f1`
                for I in `seq 1 $LINES` ;do
                        echo"hello,`head -n $I|tail -1|cut -d: -f1`"
                done

        写一个脚本:
                添加10个用户user1到user10,密码通用户名,但要求只有用户不存在的情况下才能添加。
                #!/bin/bash
                for I in {1,10};do
                        if id user$1 &>/dev/null;then
                                echo "user$I exists."
                        else
                                useradd user$I
                                echo "user$I"|passwd --stdin user$I &> /dev/null
                                echo "user$I add ok"
                        fi
                done

        写一个脚本,输入2个参数。输入--add 添加10个用户,输入--del删除10个用户。
                #!/bin/bash
                if [ $# -t 1 ];then
                        echo "Usage:adminuser ARG"
                        exit 7
                fi

                if [ $1 == '--add']; then
                        for I in {1,10};do
                                if id user$1 &>/dev/null;then
                                        echo "user$I exists."
                                else
                                        useradd user$I
                                        echo "user$I"|passwd --stdin user$I &> /dev/null
                                        echo "user$I add ok"
                                fi
                       done
                elif [$1 == '--del'];then
                        for I in {1,10};do
                                if id user$1 &>/dev/null;then
                                        userdel -r user$I
                                        echo "user$I del ok"
                                else
                                        echo "no user$I"
                                fi
                       done
                else
                        echo "no such ARG"
                        exit 8
                fi

        接上题:
                使用--add user1,user2...添加指定用户
                使用--del删除指定用户。
                使用--help显示帮助
                指定用的参数,各个用户用逗号隔开。
                #!/bin/bash
                if [ $1 == '--add' ];then
                        for I in `echo $2|sed 's/,//g'`;do
                                if id $1 &>/dev/null; then
                                        echo "$I exists"
                                else
                                        useradd $I
                                        echo $I|passwd --stdin $I &>/dev/null
                                        echo "add $I"
                                fi
                        done
                elif [ $1 == '--del' ];then
                        for I in `echo $2|sed 's/,//g'`;do
                                if id $1 &>/dev/null; then
                                        userdel $I
                                        echo "del $I"
                                else
                                        echo "$I not exist"
                                fi
                        done
                elif [ $1 == '--help'];then
                        echo "Usage: xxx.sh --add USER1,USER2... --del USER1,USER2 --help"
                else
                        echo "unknow option"
                fi

页: [1]
查看完整版本: for循环