zoukankan      html  css  js  c++  java
  • shell学习之路:流程控制(for)

    for循环的语法:

    1.  for 变量 in 值1 值2 值3....

        do

          程序

        done

    例如:下列脚本会分别打印4次 分别是morning noon afternoon evening的值

    1 #!/bin/bash
    2 #打印时间
    3 #Author Mrfeng
    4 
    5 for time in morning noon afternoon evening
    6         do
    7                 echo $time
    8         done

    例如批量解压缩:

     1 #!/bin/bash
     2 #批量解压缩脚本
     3 #Author: Mrf
     4 
     5 path=/opt/lamp
     6 
     7 cd $path
     8 
     9 ls *.tar.gz > ls.log
    10 ls *.tgz >> ls.log
    11 for i in $(cat ls.log)
    12         do
    13                 tar zxvf $i &>>cc.log
    14         done
    15 rm -rf ls.log

    2.for 语法二

    格式:

    1 for ((初始值;循环控制条件;变量变化))
    2     do
    3            程序
    4     done

    例如:

    1 #!/bin/bash
    2 #从1加到100
    3 
    4 s=0
    5 for(( i=1;i<=100;i=i+1 ))
    6     do
    7         s=$(($s+$i))
    8     done
    9 echo "the sum of 1+2+...+100is: $s"

    例如:批量添加用户

     1 #!/bin/bash
     2 # 批量添加用户数量的用户
     3 # Author:Mr f (E-mail:22222222)
     4 
     5 read -p "Please input user name:" -t 30 name
     6 read -p "Please input the number of users:" -t 30 num
     7 read -p "Please input the password of users:" -t 30 pass
     8 if [ ! -z "$name" -a ! -z "$num" -a ! -z "$pass" ]
     9         then
    10                 y=$(echo $num | sed 's/[0-9]//g')
    11                 if [ -z "$y" ] ; then
    12                         for ((i=1;i<=$num;i=i+1))
    13                                 do
    14                                         /usr/sbin/useradd $name$i &>/dev/null
    15                                         echo $pass | /usr/bin/passwd --stdin $n
    16 ame$i &>/dev/null
    17                                 done
    18                 fi
    19 fi
    20 cat /etc/passwd | grep user[1-$num] | cut -d ":" -f 1 >>userlist.log

    当然我也写了一个利用 userlist.log进行批量删除的脚本方便大家做完实验后清理

    1 #!/bin/bash
    2 for i in $(cat ./userlist.log)
    3         do
    4                 /usr/sbin/userdel -r $i &>>del.log
    5         done
    6 #cat del.log
    7 rm -rf del.log
  • 相关阅读:
    手把手教 从0开始搭建vue 脚手架项目
    利用vue.config.js 配置前端模拟接口技巧
    elementUI 穿梭框应用
    process.env.VUE_APP_BASE_API
    springcloud-Eureka组件
    mysql-常用组件之触发器
    mysql-常用组件之定时器
    springboot-整合多数据源配置
    【搞定面试官】- Synchronized如何实现同步?锁优化?(1)
    【搞定面试官】try中有return,finally还会执行吗?
  • 原文地址:https://www.cnblogs.com/patf/p/4609271.html
Copyright © 2011-2022 走看看