DAY 14

作业:

练习1:在终端输入一个用户名

定义有参又返函数,返回用户在/etc/passwd文件中的行号

参数:用户名

返回:行号

#!/bin/bash
  2 
  3 #2 解析器
  4 read -p "请输入一个用户名" username
  5 
  6 function Zrr()
  7 {
  8     #$(())不能用
  9     line=`grep -n $username /etc/passwd | cut -d ":" -f 1`  
 10         
 11 }
 12                                                                 
 13 Zrr $username
 14 echo    行号是=$line
 15 

定义有参又返函数,返回用户在.etc.passwd文件中的解析器

参数:用户名

返回:解析器

#!/bin/bash
  2 
  3 #2 解析器
  4 read -p "请输入一个用户名" username
  5 
  6 function Zrr()
  7 {
  8     #$(())不能用
  9     jiexiqi=`grep -n $username /etc/passwd | cut -d "/" -f 6`   
 10         
 11 }
 12                                                                 
 13 Zrr $username
 14 echo    解析器是=$jiexiqi
 15 

定义有参又返函数,返回用户的uid和gid

参数:用户名

返回:uid gid

#!/bin/bash
  2 
  3 read -p "请输入一个用户名" username
  4 
  5 function Zrr()
  6 {
  7     #$(())不能用
  8     uid=`grep -n $username /etc/passwd | cut -d ":" -f 4`   
  9     gid=`grep -n $username /etc/passwd | cut -d ":" -f 5`   
 10 }
 11 
 12 Zrr $username
 13 echo    gid是=$gid
 14 echo    uid是=$uid
 15         

练习2:定义数组存储软件名(oneko bastet frozen-bubble)使用select..in循环数组,实现页面的交互

使用case in 判断软件是否存在(执行),正常运行则不下载,运行失败则下载并运行arar

ps查看进程

 #!/bin/bash                                              
  2 
  3 
  4 arr=("oneko" "bastet" "frozen-bubble")
  5 
  6 select varname in ${arr[*]}
  7 do
  8     case varname in
  9     oneko)
 10         if [  $? -ne 0 ]
 11         then
 12             echo 未安装oneko
 13             sudo apt-get install oneko
 14             ./oneko
 15         else
 16             echo 已安装
 17             ./oneko
 18         fi
 19             ;;
 20 
 21     basket)
 22         if [ rpm -q basket | $? -ne 0 ]
 23         then
 24             echo 未安装oneko
 25             sudo apt-get install basket
 26             ./basket
 27         else
 28             echo 已安装
 29             ./basket
 30         fi  
 31             ;;
 32 
 33 
 34     frozen-bubble)
 35         if [ rpm -q frozen-bubble | $? -ne 0 ]
 36         then
 37             echo 未安装oneko
 38             sudo apt-get install frozen-bubble
 39             ./frozen-bubble
 40         else
 41             echo 已安装
 42             ./frozen-bubble
 43         fi
 44             ;;
 45 
 46 
 47 
 48 
 49 
 50     esac
 51 done

练习3:输入数组元素,计算数组的最大值

 1 #!/bin/bash
  2 
  3 
  4 read -p "请输入数组" -a arr
  5 
  6 max=${arr[0]}
  7 
  8 for ((i=0;i<${#arr[*]};i++))
  9 do
 10     if [ $max -lt  ${arr[$i]} ]
 11     then
 12         max=${arr[i]}                                    
 13     fi
 14 done
 15 
 16 echo $max

练习4:打印图形

****

***

**

*

  1 #!/bin/bash
  2 
  3 
  4 read -p "输入n" n
  5 
  6 for((i=1;i<=n;i++))
  7 do
  8     for((j=1;j<=i-1;j++))
  9     do
 10         echo -n " "
 11     done
 12     for((k=1;k<n+1-i;k++))
 13     do
 14         echo -n "*"
 15     done
 16     echo ""
 17 done   

练习5:输入一个文件名,

判断是否在当前目录下存在,

如果是一个目录,则直接输出是目录

如果是一个链接文件则输出文件的详细信息

如果存在则判断是否是一个普通文件,如果是普通文件则判断是否具备

可读可写可执行权限,如果具备权限,写入hello,不具备权限,则添加读写执行权限,写入hello

 read -p "文件名" file
  5 if [ -e ./$file ]
  6 then
  7     if [ -d ./$file ]
  8     then
  9         echo 目录
 10     elif [ -L ./$file ]
 11     then
 12         ls -lh  $file
 13     elif [ -f ./$file ]
 14     then
 15         echo 普通文件
 16         if [ -r ./$file -a -w ./$file -a -x ./$file ]
 17         then 
 18             echo hello >> $file
 19         else                                                                
 20             chmod 777 $file
 21             echo hello >> $file
 22         fi
 23     fi
 24 fi

思维导图

  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值