脚本和算术运算的小练习

练习

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之和

[[email protected] 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文件中所有空白行之和

[[email protected] 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"

运行结果 :

[[email protected] scripts]# bash addblank.sh
let expression: 188
变量引用实现赋值$[算术表达式]:188
变量引用实现赋值$((算术表达式)): 188
命令引用实现赋值$(命令): 188

3)写一个脚本,传递两个文件路径作为参数给脚本,计算两个文件中所有空白行之和

cat 连接文本文件,显示到标准输出

[email protected] scripts]# cat addblank3.sh 
#!/bin/bash
blanks=$(cat $1 $2 | grep -c ‘^[[:space:]]*$‘)
echo "$1 and $2 has $blanks blanklines"

运算结果:

[[email protected] 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目录中共有多少个一级子目录和文件?

[[email protected] 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"

执行的结果

[[email protected] scripts]# bash count.sh /etc /var /usr
The sum of filecounts: 287
[[email protected] scripts]# ls /etc | wc -l
249
[[email protected] scripts]# ls /var | wc -l
26
[[email protected] scripts]# ls /usr | wc -l
12
时间: 2024-08-13 03:59:42

脚本和算术运算的小练习的相关文章

【python笔记 三 】python脚本实战---数字密码小游戏

描述:A输入一个数值,输入时该数值已隐藏无法看到,让B猜该数字为多少,数值过小或过大都会提示,并会在最后猜对时统计出共猜了几次. 脚本内容: #!/usr/bin/env python #FileName:while1.py import getpass    #调用模块 a = int(getpass.getpass('Enter A Number a:'))    #模块赋值 running = True i = 0 while running: b = int(raw_input('Ent

js脚本操作mongo库小知识

(一) :如何在js文件里面切换一个新的mongo库? 我们都知道,使用下面的命令可以执行一个js脚本里面的内容: Java代码 收藏代码 mongo –quiet localhost:27021/db_name < test.js 虽然我们在执行一个js时,需要指定一个数据名,但不意味着,在这个js里面,就只能使用这个库操作,可以我的需求是,循环查询一个库的id字段,然后拿着这个id字段去另一个库匹配,如果在另一个库存在,可能我就要干某些操作,如果不存在,我可能又要干某些操作等等,MongoS

Shell脚本编程算术运算和条件测试

算术运算 1.bash中的算术运算:help let +, -, *, /, %取模(取余), **(乘方) 实现算术运算: (1) let var=算术表达式 (2) var=$[算术表达式] (3) var=$((算术表达式)) (4) var=$(expr arg1 arg2 arg3 ...) (5) declare –ivar= 数值 (6) echo '算术表达式' | bc 2.乘法符号有些场景中需要转义,如* 3.bash有内建的随机数生成器: $RANDOM(0-32767)

MySQL备份脚本的一个简单小脚本

#!/bin/bash #记录备份的时间echo "-----"$(date +"%y-%m-%d %H:%M:%S")"-----" >> /data/backup_mysql/record.log #定义变量 MYUSER=rootMYPASSWORD=29749716#@HeiniaoSOCKET=/data/mysql/mysql.sockMYCMD="mysql -u $MYUSER -p$MYPASSWORD -

shell脚本实现算术运算且输入的不能为非数字的数

#!/bin/bash echo "请输入第一个数" read a echo "请输入第二个输" read b if [[ ${b} != *[!0]* ]] && [[ ${a} != *[!0123456789]* ]]; then echo "除数为0!!!!!!!!!!!!!!!!!" echo "和为"`echo $(( ${a} + ${b} ))` echo "差为"`echo

~图形脚本加(双色球小脚本)*

#!/bin/bash#99乘法口诀for i in {1..9}do        for j in {1..9}        do                if [ $j -le $i ]                then                        echo -n " ${j}x${i}=$(($i*$j)) "                fi        done        echodoneechoecho #三角形  变  M 形fo

Linux Shell 脚本的小技巧——不定期更新

本文旨在积累平时写 shell 脚本是遇到的小问题的解决方法.在这里不定期的更新,以便以后查阅.沿用. 一,在shell 脚本中定义默认值 1.   对默认变量直接赋值 read -p "input>>:" nub nub=${nub:-30} echo ${nub} 2.   对默认变量用可变值赋值 read -p "input>>:" nub nub=${nub:-$(date +%Y%m%d)} echo ${nub}

小麦苗健康检查脚本说明

小麦苗健康检查脚本说明 第一章 小麦苗健康检查脚本特点 小麦苗健康检查脚本有如下的特点: 1. 绿色版.免安装.纯SQL文本 2. 跨平台,只要有SQL*Plus环境即可运行 3. 兼容Oracle 10g.11g及12c版本 4. 一次购买,终身免费升级 5. 检查内容非常全面 6. 脚本可视化,可以看到脚本内容,因此可供学习使用 7. 只有1个SQL脚本,不存在嵌套调用等其它问题 8. 生成html文件的健康检查结果 9. 对结果进行过滤,列出了数据库有问题的内容   第二章 小麦苗健康检查

shell脚本第四篇——常用小脚本

shell脚本第四篇--常用小脚本 1.将系统进程按内存占用大小排列显示出来 # ps -e  -o "%C   : %p : %z : %a"|sort -k5-nr 2.将系统进程按CPU占用大小排列显示 # ps -e  -o "%C   : %p : %z : %a"|sort   -nr 或# ps aux --sort -rss 3.查找当前目录下占用为0字节的文件并删除 # find ./ -type f -size 0 -exec rm -rf {}