C高级 作业 day3 8/4

1.整理思维导图

 


2.判断家目录下,普通文件的个数和目录文件的个数

  1 #!/bin/bash
  2 arr=(`ls -l ~ | cut -d r -f 1 | grep -w d `)
  3 arr1=(`ls -l ~ | cut -d r -f 1 | grep -w -`)
  4 echo "目录文件个数为 ${#arr[*]}"
  5 echo "普通文件个数为 ${#arr1[*]}"                                                               
  6 
  7 
                                                                                                


3.输入一个文件名,判断是否为shell脚本文件,如果是脚本文件,判断是否有可执行权限,如果有可执行权限,运行文件,如果没有可执行权限,给文件添加可执行权限。

  1 #!/bin/bash
  2 read -p "请输入文件名" name
  3 pos=`expr index $name '.'` 
  4 if [ `expr substr $name $((pos+1)) 3` = 'sh' ]
  5 then
  6     if [ -x $name ]
  7     then
  8         ./$name
  9     else
 10         chmod u+x $name
 11     fi
 12 fi
 13                                                                                                 


4.终端输入两文件名,判断哪一个文件更新

  1 #!/bin/bash
  2 read name1 name2
  3 if [ $name1 -nt $name2 ]
  4 then
  5     echo "$name1更新"
  6 else
  7     echo "$name2更新"
  8 fi                                                                                              
  9 
                      


5.终端输入用户,判断用户是否存在,如果不存在,添加用户

  1 #!/bin/bash
  2 read -p "请输入用户名" name
  3 if [ -z `grep -w $name /etc/passwd`]
  4 then
  5     sudo adduser $name
  6 fi
                                                                                               


6.输入学生成绩,判断等级,A[100,90),B[90,80),C[80,70),D[70,60)

  1 #!/bin/bash
  2 read -p "请输入学生成绩" grade
  3 if [ $grade -gt 90 -a $grade -le 100 ]
  4 then
  5     echo "等级A"
  6 elif [ $grade -gt 80 -a $grade -le 90 ]                                                         
  7 then
  8     echo "等级B"
  9 elif [ $grade -gt 70 -a $grade -le 80 ]
 10 then
 11     echo "等级C"
 12 elif [ $grade -gt 60 -a $grade -le 70 ]
 13 then
 14     echo "等级D"
 15 fi


7.写一个shell脚本,获取当前用户名,用户id和工作路径

  1 #!/bin/bash                                                                                     
  2 user=`whoami`
  3 echo "用户名:`whoami`  用户id:`id -u` 工作路径:`grep -w $user /etc/passwd |
  4     cut -d : -f 6`"


8.统计/etc目录下以P或p开头的文件个数

  1 #!/bin/bash
  2 a=(`ls /etc | grep -i ^p`)
  3 echo "以P或p开头的文件个数为 :${#a[*]}"
  4 #user=`whoami`
  5 #echo "用户名:`whoami`  用户id:`id -u` 工作路径:`grep -w $user /etc/passwd |
  6 #   cut -d : -f 6`"                                                                             

你可能感兴趣的:(开发语言)