作为一枚十分贴心的杜老师,在此给大家准备了六道Shell脚本练习题。都是入门级的水准,希望大家踊跃尝试编写。

脚本题目

  1. 编写脚本,计算1到100的总和;

  2. 编写脚本,输入一个数字n并计算1到这个数的总和。要求:如果这个数小于等于1,要求重新输入,直到输入大于1的数字为止;

  3. 编写脚本,把/root/目录下的所有目录复制到/tmp/目录;

  4. 编写脚本,批量建立用户,要求用户名的格式为user_00/user_01,建立100个,且用户同属于users组;

  5. 编写脚本,在/cjk/目录下的所有文件(不含目录)的文件名后面加.bak;

  6. 编写脚本,给系统中所有已存在的用户打个招呼,格式参考为hello penndu and your id is 1000。

参考答案

一题:

1
2
3
4
5
6
7
#!/bin/bash
sum=0
for i in `seq 1 100`
do
sum=$[$i+$sum]
done
echo $sum

二题:

1
2
3
4
5
6
7
8
9
10
11
12
#!/bin/bash
n=0
while [ $n -lt 1 ]
do
read -p "Please input a number, it must greater than 1: " n
done
sum=0
for i in `seq 1 $n`
do
sum=$[$i+$sum]
done
echo $sum

三题:

1
2
3
4
5
6
7
8
#!/bin/bash
cd /root/
for f in `ls`
do
if [ -d $f ] ; then
cd -r $f /tmp/
fi
done

四题:

1
2
3
4
5
6
#!/bin/bash
groupadd users
for i in `seq -w 0 99`
do
useradd -g users user_$i
done

五题:

1
2
3
4
5
6
7
8
#!/bin/bash
cd /cjk/
for f in `ls`
do
if [ -f $f ] ; then
mv $f $f.bak
fi
done

六题:

1
2
3
4
5
6
7
#!/bin/bash
for i in `cat /etc/passwd`
do
username=`echo $i | cut -d : -f 1`
id=`echo $i | cut -d : -f 3`
echo "hello $username and your id is $id"
done

评论