【循环】使用记录

1.
# vim case-2.sh #!/bin/bash case $1 in start) systemctl $1 httpd ps aux|grep httpd echo "httpd start" ;; stop) systemctl $1 httpd ps aux|grep httpd echo "httpd stop" ;; status) systemctl $1 httpd ;; restart) systemctl $1 httpd echo "httpd restart" ;; *) echo "USAGE: $0 start|stop|restart" esac


cat case-1.sh


#!/bin/bash
cat <<eof
** 1. backup **
** 2. copy **
** 3. quit **
eof
read -p "Input a choose: " OP
case $OP in
1|backup)
echo "BACKUP......"
;;
2|copy)
echo "COPY....."
;;
3|quit)
exit
;;
*)
echo error
esac

 

2.for 循环

for var in list 
do
  commands
done

1)
#!/bin/bash
for var in a1 b1 c1 d1
do
    echo the text is $var
done
2)
cat for-4.sh 
#!/bin/bash
list="a1 b1 c1 d1"
for i in $list
do
    echo is a $i
done

3)
cat for-5.sh   #以空格做分隔符
#!/bin/bash
for i in `cat  /etc/hosts`
do
    echo "$i"
done

4)

cat for-6.sh  #指定以
回车做为 for语句的分隔符
#!/bin/bash
IFS=$'
'
for i in `cat /etc/hosts`
do
    echo "$i"
done

cat for-7.sh   #以:冒号做分隔符
#!/bin/bash
IFS=:
list=`head -1 /etc/passwd`
for i in $list
do
    echo $i
done

5)
cat for-8.sh 
#!/bin/bash
for (( i=1 ; i<=10 ; i++ ))
do
    echo num is $i
done

6)
# cat for-8.sh 
#!/bin/bash
for ((a=1,b=9 ; a<10 ; a++,b--))
do
    echo num is $a - $b 
done


7)

cat for-adduser.sh 
#!/bin/bash
for name in `cat /root/a.txt`
#for name in $(cat /root/a.txt)
do
        id $name &> /dev/null
        if [ $? -ne 0 ];then
                useradd $name
                echo "123456" |passwd --stdin $name &> /dev/null
                echo "user $name created"

        else
                echo "user $name is exist"
        fi
done

8)
# cat for-for.sh
for i in  `seq 9`
do
         for j in `seq $i`
         do
              echo  -n  "$i*$j= `echo $(($i*$j))` "
         done
        echo "  "
done

日志备份和账号批量添加

21.4.3  批量创建帐号并生成随机密码
[root@xuegod63 ~]# vim adduser.sh
#!/bin/bash
for i in xuegoda{1..10}
do
      useradd $i
      pass=`date +%s|md5sum|cut -c 1-8`
      sleep 1
      echo "$i:$pass" >> /tmp/passwd.log
      echo $pass |passwd --stdin $i > /dev/null 2>&1
      if [ $? -eq 0 ];then
        echo "create user is successfully!"
      else
        echo "create user is failed!"
      fi
done


日志

vim log-back.sh
#!/bin/sh
SRC_DIR=/var/log/
DES_DIR=/opt/backup/`date +%Y%m%d`
if
[ ! -d  $DES_DIR ] ; then
        mkdir -p $DES_DIR
fi
for i in  `find  $SRC_DIR  -name "*.log"`
do
        tar  czf  $i.tgz  $i
done
mv /var/log/*.tgz $DES_DIR
ls -lh $DES_DIR
echo "The scripts exec end, Files tar successfully !"
原文地址:https://www.cnblogs.com/zsl-find/p/9970644.html