wslsg 发表于 2018-8-22 06:14:46

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]
查看完整版本: linux 第十五章 shell 脚本习题