shell实战题目

面试题1:批量生成随机字符文件名

题目:使用for循环在/oldboy目录下批量创建10个html文件,其中每个文件需要包含10个随机小写字母固定字符串_oldboy

#!/bin/bash
#定义共用变量
path=/root/oldboy
#短路||前面为false后面执行 -p递归创建多级目录
[ -d "$path" ]||mkdir -p $path
#循环10次
for n in `seq 10`
do
        #产生10个小写字母
        random=$(openssl rand -base64 40|sed 's#[^a-z]##g'|cut -c 1-10)
        #创建文件
        touch $path/${random}_oldboy.html
done

面试题2:批量改名

题目:上题所得文件名中的oldboy字符串全部改成oldgirl(最好用for循环实现),并且将扩展名html全部改成大写

#!/bin/bash
#定义变量
filename=_oldgirl.HTML
dirname=/root/oldboy
#不能进入待改文件目录就退出
cd $dirname||exit 1
#循环当前目录下的文件
for n in `ls`
do
        #n就是每个文件的名字
        name=$(echo ${n}|awk -F '_' '{print $1}')
        #剪切
        mv $n $name$filename
done

借助rename命令实现重命名

 rename oldboy.html oldgirl.HTML *.html

面试题3:批量创建特殊要求用户

题目:批量创建10个系统账号oldboy01-oldboy10并设置密码(密码为随机数,要求是字符和数字等的混合)。

#!/bin/bash
user="oldboy"
logfile=/root/logs/user.log
for n in `seq -w 10`
do
  #创建用户
  useradd $user$n
  #设置密码
  pass="`echo "$RANDOM"|md5sum|cut -c 1-8`"
  echo "$pass"|passwd --stdin $user$n
  #记录密码
  echo -e "user:$user$n\tpasswd:$pass" >> $logfile
done

 

转载于:https://www.cnblogs.com/zwy008/p/9867195.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值