您的位置:首页 > 运维架构 > Shell

shell练习题

2021-03-01 21:51 351 查看 https://www.cnblogs.com/strugg
  1. 使用for循环在/oldboy目录下通过随机小写10个字母加固定字符串oldboy批量创建10个html文件。把上面创建的文件oldboy字符串改为oldgirl

dir=/oldboy
[ -d "$dir" ] || mkdir -p $dir
for  n  in  {1..10}
do
name=`tr -cd 'a-zA-Z'  </dev/urandom  |head -c10`
touch  $dir/${name}_oldboy.html
done
cd $dir
for i in `ls`
do
a=`echo $i|cut -c 1-10`
mv  ${a}_oldboy.html ${a}_oldgirl.HTML
done
产生随机数
echo $RANDOM|md5sum|cut -c'1-8';echo

.统计下面这句话中字母数不大于6的单词(至少两种方式)

I am oldboy teacher welcome to oldboy training class.
[root@shell ~]# echo I am oldboy teacher welcome to oldboy training class|awk '{for(i=1;i<=NF;i++){if (length($i)<=6) {print $i}}}'
I
am
oldboy
to
oldboy
class
  1. 计算从1加到100之和

[root@shell scripts]# cat sum.sh
a=1
while [ $a -le 100 ]
do
sum=$[ $sum+$a ]
let a++
done
echo $sum

脚本批量创建10个用户,密码统一为123,需要对用户输入是否为数字和输入的名字是否为空做判断

[root@shell scripts]#cat user1.sh
#!/bin/bash
passwd=123
while true
do
read -p "请输入用户名前缀: " prefix
if [ -z $prefix ]; then
echo "用户名前缀不能为空!"
else
break
fi
done
while true
do
read -p "请输入需要创建用户数量: " num
if [[ ! $num =~ ^[1-9][0-9]?$ ]]; then
echo "请输入不为零的整数!"
else
break
fi
done
​
for i in `seq $num`
do
user=$prefix$i
id $user &>/dev/null
if [ $? -eq 0 ]; then
echo "用户oldboy${i}已经存在!"
else
useradd $user && echo $passwd | passwd --stdin $user &>/dev/null
if [ $? -eq 0 ]; then
echo "密码创建成功!"
else
echo "密码创建失败!"
fi
fi
done
创建随机密码:
for n in `seq -w 10`
do
useradd user$n;echo "user$n `user$n|md5sum|cut-c1-8`"|passwd --stdin user$n
done

 

 

 



 



 



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: