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.www58058.com/63944
贊,幾個腳本完成的不錯~能注意下整體風格會更好~~繼續加油~