15.1shell编程

1.使用for 循环在/oldboy目录下批量创建5个文件,名称为oldboy-1.html~oldboy-5.html
[root@oldboyedu-01 ~]# vim /service/script/test1.sh
[root@oldboyedu-01 ~]# cat /service/script/test1.sh
#!/bin/sh
[ -d /oldboy ] && mkdir -p /oldboy
for num in `seq 5`
do
touch /oldboy/oldboy-${num}.html
done
[root@oldboyedu-01 ~]# sh /service/script/test1.sh
[root@oldboyedu-01 ~]# ls /oldboy
oldboy-1.html oldboy-2.html oldboy-3.html oldboy-4.html oldboy-5.html

2.用for循环实现将以上文件名中的oldboy全部替换为linux,并且扩展名改成大写。
要求:for循环的循环体不能出现oldboy字符串。
[root@oldboyedu-01 script]# cat test2.sh
#!/bin/sh
for num in `seq 5`
do
cd /oldboy && mv oldboy-${num}.html linux-${num}.HTML
done
[root@oldboyedu-01 script]# sh test2.sh
[root@oldboyedu-01 script]# ls /oldboy
linux-1.HTML linux-2.HTML linux-3.HTML linux-4.HTML linux-5.HTML

[root@oldboyedu-01 script]# cat test2.sh
#!/bin/sh
cd /oldboy
for file in `ls *.html`
do
mv ${file} `echo ${file}|sed 's#oldboy#linux#g'|sed 's#html#HTML#g'`
done
[root@oldboyedu-01 script]# ls /oldboy
linux-1.HTML linux-2.HTML linux-3.HTML linux-4.HTML linux-5.HTML

linux下批量修改文件名精彩解答案例分享
http://blog.51cto.com/oldboy/711342

3.批量设置5个系统账号oldboy01~oldboy05 并设置密码(密码不能相同)
数字加0的方法:http://blog.51cto.com/oldboy/788422
[root@oldboyedu-01 script]# cat test3.sh
#!/bin/sh
for num in `seq -w 5`
do
useradd oldboy$num && \
echo "root${num}" |passwd --stdin oldboy${num}
done
[root@oldboyedu-01 script]# sh test3.sh
[root@oldboyedu-01 script]# tail -5 /etc/passwd
oldboy1:x:1011:1011::/home/oldboy1:/bin/bash
oldboy2:x:1012:1012::/home/oldboy2:/bin/bash
oldboy3:x:1013:1013::/home/oldboy3:/bin/bash
oldboy4:x:1014:1014::/home/oldboy4:/bin/bash
oldboy5:x:1015:1015::/home/oldboy5:/bin/bash

4.批量
企业Shell常见面试题及企业实战案例深入浅出讲解视频课程
edu.51cto.com/course/course_id-1511.html

随机数产生方法:
[root@oldboyedu-01 script]# echo $RANDOM
15290
[root@oldboyedu-01 script]# echo $((RANDOM+10000000))
10016411
[root@oldboyedu-01 script]# echo $RANDOM|md5sum
81bae33f32a70540bac850cfcf8491cf -
[root@oldboyedu-01 script]# echo $RANDOM|md5sum|cut -c 1-8
e070b7a4
[root@oldboyedu-01 script]# echo "`date`$RANDOM"|md5sum|cut -c 1-8
41320917

删除刚才建立的用户:
[root@oldboyedu-01 script]# cat test4.sh
#!/bin/sh
for num in `seq -w 5`
do
userdel oldboy$num
done

[root@oldboyedu-01 ~]# echo ${RANDOM}|md5sum|cut -c 1-8
71b0203b

[root@oldboyedu-01 script]# cat test5.sh
#!/bin/sh
for num in `seq -w 5`
do
pass=`echo ${RANDOM}|md5sum|cut -c 1-8`
useradd oldboy$num && \
echo "$pass"|passwd --stdin oldboy$num
echo -e "oldboy$num \t $pass" >>/oldboy/pass.txt
done
[root@oldboyedu-01 script]# cat /oldboy/pass.txt
[root@oldboyedu-01 script]# tail -5 /etc/passwd
oldboy1:x:1011:1011::/home/oldboy1:/bin/bash
oldboy2:x:1012:1012::/home/oldboy2:/bin/bash
oldboy3:x:1013:1013::/home/oldboy3:/bin/bash
oldboy4:x:1014:1014::/home/oldboy4:/bin/bash
oldboy5:x:1015:1015::/home/oldboy5:/bin/bash

posted @ 2018-02-08 23:04  bkycrmn  阅读(109)  评论(0)    收藏  举报