shell编程—运算符(五)】的更多相关文章

通过前几篇文章的学习,我们学会了shell的基本语法.在linux的实际操作中,我们经常看到命令会有很多参数,例如:ls -al 等等,那么这个参数是怎么处理的呢? 接下来我们就来看看shell脚本对于用户输入参数的处理. 命令行参数处理 根据参数位置获取参数 bash shell可根据参数位置获取参数.通过 $1 到 $9 获取第1到第9个的命令行参数.$0为shell名.如果参数超过9个,那么就只能通过${}来获取了, 例如获取第10个参数,那么可以写为${10}. 示例一: #!/bin/…
算术运算符 expr 是一款表达式计算工具,使用它能完成表达式的求值操作 加法:expr a+b 两个数相加使用的是反引号`而不是单引号‘’ 减法:expr a-b 乘法:expr a\*b 除法:expr b/a 取余:expr b%a 赋值:a=$b 将把变量 b 的值赋给 a 相等:==,用于比较两个数字,相同则返回 true 不相等:!=,用于比较两个数字,不相同则返回 true 布尔运算符 ! 非运算,表达式为true则返回false,不然然后true -o 或运算,有一个表达式为tr…
正则表达式 1.前情提要 以前我们用grep在一个文件中找出包含某些字符串的行,比如在头文件中找出一个宏定义.其实grep还可以找出符合某个模式(Pattern)的一类字符串.例如找出所有符合xxxxx@xxxx.xxx模式的字符串(也就是email地址),要求x字符可以是字母.数字.下划线.小数点或减号,email地址的每一部分可以有一个或多个x字符,例如abc.d@ef.com.1_2@987-6.54,当然符合这个模式的不全是合法的email地址,但至少可以做一次初步筛选,筛掉a.b.c@…
2.7 Shell运算符 Bash 支持很多运算符,包括算数运算符.关系运算符.布尔运算符.字符串运算符和文件测试运算符.原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk 和 expr,expr 最常用.expr 是一款表达式计算工具,使用它能完成表达式的求值操作. 2.7.1 算数运算符 val=` + ` echo "2+3 is ${val}" var2=` \* ` echo "3*2 is ${var2}" var4= var5=…
1.declare命令: 声明变量的类型: -:给变量设定类型属性 +:给变量取消类型属性 -i:将变量声明为整数类型 -x:将变量声明为环境变量 -p:显示变量的类型 其中export是将num变为环境变量,num=11中,num并不是整形,因为系统默认为字符串. 2.数值运算与运算符: (1)declare实现加法运算: (2)expr实现加法运算: (3)$((运算式))或$[运算式]实现加法运算: 声明的时候不用事先将变量指定为整型变量,而且式子比较直观. 3.运算符的简单使用:…
重定向作用 一个进程默认会打开标准输入.标准输出.错误输出三个文件描述符. 重定向可以让我们的程序的标准输出.错误输出的信息重定向文件里,那么这里还可以将文件的内容代替键盘作为一种标准输入的方式. 重定向符号 输入重定向符号"<" 输出重定向符号">",">>","2>","&>" 输入重定向功能 01 输入重定向符号"<"的作用: 会把…
${}: 数据“内容”删除,替换:{}: 列表 1. 条件测试: test =~:正则匹配 2. if/then/elif/else/fi #!/bin/bash echo "Is it ok? yes or no" read YES_OR_NO if [ "$YES_OR_NO" = "yes" ]; then echo "is ok" elif [ "$YES_OR_NO" = "no&quo…
1.declare命令 declare声明变量类型:declare [+/-][选项] 变量名 -:给变量设定类型属性 +:取消变量的类型属性 -a:将变量声明为数组型 -i:整数型 -x:环境变量 -r:只读变量 -p:显示指定变量的被声明类型 定义数组:movie[0]=zp,movie[1]=tp,declare -d movie[2]=live 查看数组:${movie},${movie[2]},${movie[*]} 2.数值运算方法 expr或let数值运算工具 dd=$(expr…
打印root可以使用可执行文件数. echo "root's bins: $(find ./ -type f | xargs ls -l | sed '/-..x/p' | wc -l)" 命令解释 1.echo 输出后面双引号的的内容 2. find ./ -type f 查找当前目录下文件类型为f的文件,把查找的结果作为输入传给下一个 3. xargs ls –l xargs 捕获一个命令的输出,然后传递给另外一个命令,之所以能用到这个命令,关键是由于很多命令不支持|管道来传递参数…