bash中的算术运算
+、-、/、%、*
实现算术运算
1. let var=算术表达式
2. var=$[算术表达式]
3. var=$((算术表达式))
4. var=$(expr arg1 arg2...)
乘法符号有些场景需要转义
bash有内建的随机数生成器:$RANDOM
增强型赋值
+=,-=,/=, %=
自增、自减
比如自增: let var++
练习1.写一个脚本
计算/etc/passwd文件中的第10个用户和第20用户的ID之和
#!/bin/bash
userId1=$(head - /etc/passwd | tail - | cut -d: -f3)
userId2=$(head - /etc/passwd | tail - | cut -d: -f3)
useridsum=$[$userId1+$userId2]
echo "uid sum is $useridsum"
练习2.写一个脚本
传递两个文件路径作为参数给脚本,计算这两个文件中所有空白行之和
#!/bin/bash
spaceline1=$(grep "^[[:space:]]*") $ | wc -l)
spaceline2=$(grep "^[[:space:]]*") $ | wc -l)
echo "$[$spaceline1+$spaceline2]"
练习3.统计/etc, /var, /usr目录共有多少个一级子目录和文件
#!/bin/bash
fnum1="$(ls /usr | wc -l)"
shell编程(二)之算术运算的更多相关文章
-
shell编程(二)
case判断 前面了解了shell编程的if判断,其实除了if判断,还有case判断. case语法: case VAR in case1) command1 ;; case2) command2 ; ...
-
linux运维、架构之路-shell编程(二)
一.流程控制语句 1.if语句 ①if单分支:一个条件一个结果 1 2 3 4 if 条件 then 命令 fi ②if双分支:一个条件两个结果 1 2 3 4 5 6 if 条件 ...
-
Shell编程(二)——shell的基础知识及常用命令
shell的基础知识 一.bash有以下特点: 1.记录命令历史 2.指令和文件名补全 3.别名 alias rm='rm -i' 4.通配符 * 0个或多个字符 ?匹配一个字符 5 输入输出重定向 ...
-
Linux上天之路(十七)之Shell编程二
一.shell常用工具 grep 1.作用 Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称是Global Regular Exp ...
-
Linux Shell编程二
以"``"符号包含的内容不是字符串,而是代表这是一个shell命令. echo "today is" `date` 前面是字符,后面`date`表示执行date ...
-
Shell编程二
告警系统需求分析 1.(虽然之前我们学习了zabbix,但有时候也不能满足我们的需求,比如比较冷门的监控项目需要写自定义脚本,或者服务器网络有问题,没有办法将客户端的数据发送到服务端.) 程序架构: ...
-
【shell】shell编程(一)-入门
如今,不会Linux的程序员都不意思说自己是程序员,而不会shell编程就不能说自己会Linux.说起来似乎shell编程很屌啊,然而不用担心,其实shell编程真的很简单.背景 什么是shell编程 ...
-
shell编程基础(二): shell脚本语法之分支语句和循环语句
一.分支语句 1.条件测试:test [ 命令test或[可以测试一个条件是否成立,如果测试结果为真,则该命令的Exit Status为0,如果测试结果为假,则命令的Exit Status为1(注意与 ...
-
Shell脚本系列教程二: 开始Shell编程
Shell脚本系列教程二: 开始Shell编程 2.1 如何写shell script? (1) 最常用的是使用vi或者mcedit来编写shell脚本, 但是你也可以使用任何你喜欢的编辑器; (2) ...
随机推荐
-
PHP-仿ecshop生成验证码
<?php /* 生成验证码 */ // 1.创建画布(基于已有图像) $n = mt_rand(1,5); $im = imagecreatefromjpeg('./images/captch ...
-
SharePoint Online 创建门户网站系列之创建栏目
前 言 SharePoint Online的栏目,简单描述即显示在首页上的各个模块信息,这里,我们主要介绍我们首页上的栏目,包括简介类型.新闻列表类型.图片类型: 下面,让我们开始在SharePoin ...
-
kmp
#include <bits/stdc++.h> #define MAXN 100000 using namespace std; string a, b; int next[MAXN]; ...
-
cascading rollback 级联回滚
Computer Science An Overview _J. Glenn *shear _11th Edition To emphasize the delicate nature of ...
-
Java _ JDK _ Arrays, LinkedList, ArrayList, Vector 及Stack
(最近在看JDK源码,只是拿着它的继承图在看,但很多东西不记录仍然印象不深,所以开始记录JDK阅读系列.) (一)Arrays Arrays比较特殊,直接继承自Arrays ->List(Int ...
-
iOS高级编程之XML,JSON数据解析
解析的基本概念 所谓“解析”:从事先规定好的格式串中提取数据 解析的前提:提前约定好格式.数据提供方按照格式提供数据.数据获取方按照格式获取数据 iOS开发常见的解析:XML解析.JSON解析 一.X ...
-
14.1.3 检查InnoDB 可用性:
14.1.3 Checking InnoDB Availability 14.1.3 检查InnoDB 可用性: 确定是否你的server 支持InnoDB: 1.执行命令 SHOW ENGINES; ...
-
jsp显示计算数值, 四舍五入
<script>document.write(Math.round(<%= rs_MFM.getInt("PVRCompl") %>/<%= rs_M ...
-
webpack实现开发、测试、生产等环境的打包切换
使用webpack构建的工程,在开发过程中不同环境的配置不同,在各种环境的打包切换过程中需要手动修改相关配置达到预期目的.但是每次都手动修改会比较麻烦,本文简单介绍如何通过对webpack进行配置,实 ...
-
Git常用指令和GitHub操作总结
Git版本管理工具(CVS) 首先粘上两个Git的基础链接~ 阮一峰:http://www.ruanyifeng.com/blog/2015/12/git-cheat-sheet.html 廖雪峰:h ...