Shell脚本编程之重定向的应用及函数的用法

一、创建名为Organizer的shell脚本用以整理学生数据:假设有一名为Students的文本文件存放学生基本信息,每一行的格式为:“姓名;专业;省份”,该脚本能够将学生信息依据省份导入北方和南方个两个不同的文件(华北、东北、西北地区为北方,其余为南方),文件名分别是NorthStudents和SouthStudents,如果省份信息存在错误则放入另一个文件ErrStudentsInfo,内容保持不变。要求:
a)结果数据写入必须使用文件描述符。
b)使用函数来判断学生信息应该导入南方还是北方。

     1	#!/bin/bash
     2	exec 1>NorthStudents
     3	exec 3>SouthStudents
     4	exec 2>ErrStudentsInfo	
     5	function locate {
     6		IFS=$'\n'";"
     7		count=0
     8	       for pro in $line
     9	       do
    10		 count=$[$count+1]
    11		 if [ $count -eq 3 ]
    12		 then 
    13		   case $pro in
    14		      ShanXi | HeiLongJiang)
    15			echo "$line";;
    16		      AnHui | YunNan)
    17			echo "$line" >&3;;
    18		      *) echo "$line" >&2;;
    19		   esac
    20		 fi	
    21	       done
    22	    }	
    23	file=/home/lhh/shiyan4/Students
    24	exec 0<  $file
    25	while read line
    26	  do  
    27	    locate $line
    28	  done

二、创建名为ListNutshell的shell脚本,能够递归遍历命令行参数中指定的文件夹,统计每一个子文件夹所包含的文件数和文件夹数,放入结果文件ListResult中,每一行格式固定为:文件夹名称(带路径);文件数;文件夹数。

     1	#!/bin/bash
     2	fs=/home/lhh/shiyan4/ListResult
     3	exec 1>>ListResult
     4	function factories {
     5	     first=`ls $1`
     6	     cd $1
     7	     local dir=0
     8	     local file=0
     9	     for i in $first
    10	     do 
    11		if [ -d $i ]
    12		then
    13		   dir=$[$dir+1]
    14		   factories $i
    15		else
    16		   file=$[$file+1]
    17		fi
    18	      done
    19	      value=";"$dir";"$file";"
    20	      value2=`pwd`
    21	      echo $value2$value	
    22	     cd ../
    23	}
    24	factories $1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值