标签:linux
练习
1)写一个脚本,计算/etc/passwd文件中的第10个用户和第20个用户的ID之和
2)写一个脚本,计算/etc/rc.d/rc.sysinit及/etc/rc.d/init.d/functions文件中所有空白行之和
3)写一个脚本,传递两个文件路径作为参数给脚本,计算两个文件中所有空白行之和
4)统计 /etc,/var,/usr目录中共有多少个一级子目录和文件?
1)写一个脚本,计算/etc/passwd文件中的第10个用户和第20个用户的ID之和
[root@izpo45bh60h6bsz scripts]# nano adduserid.sh #!/bin/bash sum= #变量不能以数字开头 #命令引用实现赋值 uid10=`head -n 10 /etc/passwd | tail -n 1 | cut -d‘:‘ -f3` uid20=$(head -n 20 /etc/passwd | tail -n 1 | cut -d‘:‘ -f3) #算术运算表达式 let sum=$uid10+$uid20 echo "let expression: $sum" sum=$[$uid10+$uid20] echo " 变量引用实现赋值\$[算术表达式]:$sum" sum=$(($uid10+$uid20)) echo "变量引用实现赋值\$((算术表达式)): $sum" sum=$(expr $uid10 + $uid20) echo "命令引用实现赋值\$(命令): $sum"
运算结果:
# bash adduserid.sh let expression: 100 变量引用实现赋值$[算术表达式]:100 变量引用实现赋值$((算术表达式)): 100 命令引用实现赋值$(命令): 100
2)写一个脚本,计算/etc/rc.d/rc.sysinit及/etc/rc.d/init.d/functions文件中所有空白行之和
[root@izpo45bh60h6bsz scripts]# nano addblank.sh #!/bin/bash blank1= blank2= sum= name1=/etc/rc.d/rc.sysinit name2=/etc/rc.d/init.d/functions ##命令引用实现赋值 blank1=`grep -c ‘^[[:space:]]*$‘ $name1` blank2=$(grep -c ‘^[[:space:]]*$‘ $name2) #算术运算表达式 let sum=$blank1+$blank2 echo "let expression: $sum" sum=$[$blank1+$blank2] echo " 变量引用实现赋值\$[算术表达式]:$sum" sum=$(($blank1+$blank2)) echo "变量引用实现赋值\$((算术表达式)): $sum" sum=$(expr $blank1 + $blank2) echo "命令引用实现赋值\$(命令): $sum"
运行结果 :
[root@izpo45bh60h6bsz scripts]# bash addblank.sh let expression: 188 变量引用实现赋值$[算术表达式]:188 变量引用实现赋值$((算术表达式)): 188 命令引用实现赋值$(命令): 188
3)写一个脚本,传递两个文件路径作为参数给脚本,计算两个文件中所有空白行之和
cat 连接文本文件,显示到标准输出
root@izpo45bh60h6bsz scripts]# cat addblank3.sh #!/bin/bash blanks=$(cat $1 $2 | grep -c ‘^[[:space:]]*$‘) echo "$1 and $2 has $blanks blanklines"
运算结果:
[root@izpo45bh60h6bsz scripts]# bash addblank3.sh /etc/rc.d/rc.sysinit /etc/rc.d/init.d/functions /etc/rc.d/rc.sysinit and /etc/rc.d/init.d/functions has 188 blanklines
4)统计 /etc,/var,/usr目录中共有多少个一级子目录和文件?
[root@izpo45bh60h6bsz scripts]# nano count.sh #!/bin/bash sum= #命令引用实现赋值 count1=$(ls $1 | wc -l) #let 算术运算表达式 let sum=$sum+$count1 #换港符,shift默认将传递给脚本的参数,踢一个 shift #命令引用实现赋值 count1=`ls $1 | wc -l` #变量引用实现赋值 sum=$[$sum+$count1] shift count1=$(ls $1 | wc -l) #命令引用实现赋值 sum=$(expr $sum + $count1) echo "The sum of filecounts: $sum"
执行的结果
[root@izpo45bh60h6bsz scripts]# bash count.sh /etc /var /usr The sum of filecounts: 287 [root@izpo45bh60h6bsz scripts]# ls /etc | wc -l 249 [root@izpo45bh60h6bsz scripts]# ls /var | wc -l 26 [root@izpo45bh60h6bsz scripts]# ls /usr | wc -l 12
本文出自 “Reading” 博客,请务必保留此出处http://sonlich.blog.51cto.com/12825953/1952923
标签:linux
原文地址:http://sonlich.blog.51cto.com/12825953/1952923