linux 第十五章 shell 脚本习题
[*] 编写shell脚本,计算1-100的和;
#! /bin/bash
# sum 1-100
sum=0
for i in `seq 1 100`;do
sum=$[$sum+$i]
done
echo $sum
[*] 编写shell脚本,要求输入一个数字,然后计算出从1到输入数字的和,要求,如果输入的数字小于1,则重新输入,直到输入正确的数字为止;
#! /bin/bash
# 要求输入一个数字,然后计算出从1到输入数字的和,要求,如果输入的数字小于1,则重新输入, 直到输入正确的数字为止
i=0
while [ $i -lt 1 ];do
read -p "the number must be larger than 1:" i
done
sum=0
for n in `seq 1$i`;do
sum=$[$sum+$n]
done
echo $sum
3. 编写shell脚本,把/root/目录下的所有目录(只需要一级)拷贝到/tmp/目录下;
#! /bin/bash
##把/root/目录下的所有目录(只需要一级)拷贝到/tmp/目录下
cd /root
for i in `ls`;do
if [ -d$i ] ; then
cp -r $i/tmp/
fi
done
4.编写shell脚本,批量建立用户user_00, user_01, ... user_100并且所有用户同属于users组;
#! /bin/bash
#批量建立用户user_00, user_01, ... user_100并且所有用户同属于users组
groupadd users
for i in `seq 0 9`;do
useradd -g users user_0$i
done
for j in `seq 10 100`;do
useradd -g users user_$j
done
5.编写shell脚本,截取文件test.log中包含关键词 ‘abc’ 的行中的第一列(假设分隔符为 ”:” ),然后把截取的数字排序(假设第一列为数字),然后打印出重复次数超过10次的列;
#! /bin/bash
#截取文件test.log中包含关键词 ‘abc’ 的行中的第一列(假设分隔符为 ”:” ),然后把>截取的数字排 序(假设第一列为数字),然后打印出重复次数超过10次的列
awk -F ':' '$0~/abc/ {print $1}' test.log >/tmp/1.txt
sort -n /tmp/1.txt |uniq -c |sort -n >/tmp/2.txt
awk '$1>10 {print $2}' /tmp/2.txt
6.编写shell脚本,判断输入的IP是否正确(IP的规则是,n1.n2.n3.n4,其中1
页:
[1]