linux中函数及循环when的小小应用

1 编写一脚本输入一个文件,判断其行数,要求用函数和 when 语句实现,且打印此文件的内容,并在没两行之间加入一行特殊字符。
[root@station16 tmp]# vi filet.sh
#! /bin/bash
# filet.sh :
#Author:our RHCE Team
#Create file time is 2010:07:10:02:36:38
#Version: 0.0.01
 
 
let COUNTS=0
 
read -p "Please input a file :" FILE
 
 
func_my () {
 
FILE1=`mktemp /tmp/tmp.XXXXXX`
 
 
 MAX=`cat $1 | wc -l`
 
 
 
 
 if [ -e $1 -a -f $1 ];then
 
  while read LINE
   do COUNTS=$[$COUNTS+1]
    if [ $COUNTS -lt $MAX ] ;then
        echo "$COUNTS $LINE"
        echo "-------------------------------------"
    else
      echo "$COUNTS $LINE"
      fi
done < $1 > $FILE1
echo  "$1 file all lines is $MAX"
 
 fi
 
echo "$FILE1"
 
cat $FILE1
rm $FILE1
}
 
 
 
while [ $FILE != "q" ]
 do
  func_my $FILE
  read -p "Please input a file :" FILE
 done
2 写一个脚本,一下要求使用函数实现
a .将本机的命令历史保存至一个临时文件中,而后删除这个文件中所有一行中包含了 history ls (即后面没有参数的命令)
b .而后再去除命令中重复的多余行,并未处理后的每一行添加行号;
c .显示此文件;
d .在脚本结束前删除此临时文件;
解:
编写执行文件 tmp.sh
#! /bin/bash
# tmp.sh :
#author:our RHCE Team
#Create file time is 2010:07:10:07:22:18
#Version: 0.0.01
 
func_my () {
 
  M=`mktemp /tmp/tmp.XXXXXX`
  history -a ~/.bash_history
  cp ~/.bash_history $M
  cat $M | sed -e '/.*ls$/d' -e '/.*history$/d' | sort -u | cat -n
  rm -f $M
}
 
func_my
 
然后执行: bash tmp.sh 即可

你可能感兴趣的:(linux,函数,职场,应用,休闲)