Linux Bash Shell练习
1、写一个脚本,完成以下功能:
假设某目录(/etc/rc.d/rc3.d/)下分别有K开头的文件和S开头的文件若干
显示所有以K开头的文件的文件名,并且给其附加一个stop字符串
显示所有以S开头的文件的文件名,并且给其附加一个start字符串
分别统计S开头和K开头的文件各有多少
#!/bin/bash # for i in $(ls /etc/rc.d/rc3.d/ | grep "\<K");do echo $i.stop let sum1+=1 done for j in $(ls /etc/rc.d/rc3.d/ | grep "\<S");do echo $j.start let sum2+=1 done echo "There are $sum1 file names start with "K"." echo "There are $sum2 file names start with "S"."
执行效果:
2、写一个脚本,完成以下功能:
脚本能接受用户名作为参数
计算这些用户的ID之和
#!/bin/bash # [ $# -eq 0 ] && echo "Please give one user name or more." && exit 1 for i in $*;do for j in $(id -u $i);do let sum+=$j done done echo "Sum:$sum."
运行效果:
3、写一个脚本:
传递一些目录给此脚本
逐个显示每个目录的所有一级文件或子目录的内容类型
统计一共有多少个目录;且一共显示了多少个文件的内容类型
#!/bin/bash # [ $# -eq 0 ] && echo "At least give one file path." && exit 1 for j in $*/*;do if [ -b $j ];then echo "$j is block file." let sum1+=1 elif [ -c $j ];then echo "$j is character file." let sum1+=1 elif [ -d $j ];then echo "$j is a directory." let sum+=1 elif [ -f $j ];then echo "$j is a common file." let sum1+=1 elif [ -L $j ];then echo "$j is a symbolic link." let sum1+=1 elif [ -p $j ];then echo "$j is a pipe file." let sum1+=1 elif [ -S $j ];then echo "$j is a socket file." let sum1+=1 else echo "$j is unknown file." let sum1+=1 fi done let sum2=$sum+$sum1 echo "There are $sum directories." echo "There are $sum2 files and directories."
运行效果:
4、写一个脚本
通过命令行传递一个参数给脚本,参数为用户名
如果用户的id号大于等于500,则显示此用户为普通用户
#!/bin/bash # [ $# -eq 0 ] && echo "At least one user name needed." && exit 1 for i in $*;do if ! id $i &>/dev/null ;then echo "No such user:$i" elif [ $(id -u $i) -ge 500 ];then echo "$i is a common user." fi done
运行效果:
5、写一个脚本
添加10用户user1-user10,密码同用户名
用户不存在时才添加,存在时则跳过
最后显示本次共添加了多少用户
#!/bin/bash # declare -i sum=0 for i in {1..10};do if id user$i &>/dev/null;then echo "User user$i is exist." else useradd user$i &>/dev/null echo "user$i" | passwd --stdin "user$i" &>/dev/null echo "User user$i add finished." let sum+=1 fi done echo "There are $sum users added."
原创文章,作者:N24_lantian,如若转载,请注明出处:http://www.178linux.com/63944
评论列表(1条)
赞,几个脚本完成的不错~能注意下整体风格会更好~~继续加油~