Linux Shell数值比较和字符串比较及相关
说明:
1. 把字符串当成整型进行比较,由于abcd等字符对不上0123当程序尝试去转成二进制时无法完成转换,所以用于数值比较的运算不能用于字符串比较;但是把整型当成字符串进行比较,0123这些数值完全可以转成ASCII码而且原本两个整型相等则变成ASCII码还是相等、不等的还是不等,所以可用于字符串的比较也可用于整型的比较。
2. if语句中,数值比较的写法是if [ $var1 -ge $var2 ];字符串比较的写法是if [ “$var1” != “$var2” ],其中加双引号只是兼容$var2处为空的情况
3. 在各种运算中,test命令的运算和中括号是等效的
4. 赋值时等号两边没空格,比较或测试时运算符两边都要有空格
5. shell默认是字符运算,如果想当数值进行运算要在前边加上expr,如:var3=`expr $var1 + $var2`
6. shell的文件包含命令只有“.”,而且该命令只能一次包含单个文件(当然可以用*表示文件夹下所有文件)而不能包含一个文件夹;所见的!includedir和#includedir并不存在这样的命令,应该是程序自己实现的包含功能
7. “.”在shell中执行则会影响shell的环境,但如果只在脚本中执行那只影响脚本中的环境不会影响当前shell的环境;source其实也如此。
1.只适用于数值的比较
该类型操作会把两边变量当成整型进行加减运算,字符串abcd按整型运算无法进行,所以此类型不能用于字符串比较
| 参数 | 说明 |
| -eq | 等于则为真 |
| -ne | 不等于则为真 |
| -gt | 大于则为真 |
| -ge | 大于等于则为真 |
| -lt | 小于则为真 |
| -le | 小于等于则为真 |
2.适用于字符串的比较(也可用于数值比较)
| 参数 | 说明 |
| == | 相等则为真 |
| != | 不相等则为真 |
3.字符串测试运算
| 参数 | 说明 |
| -z 字符串 | 字符串的长度为零则为真 |
| -n 字符串 | 字符串的长度不为零则为真 |
4.文件测试运算
| 参数 | 说明 |
| -e 文件名 | 如果文件存在则为真 |
| -r 文件名 | 如果文件存在且可读则为真 |
| -w 文件名 | 如果文件存在且可写则为真 |
| -x 文件名 | 如果文件存在且可执行则为真 |
| -s 文件名 | 如果文件存在且至少有一个字符则为真 |
| -d 文件名 | 如果文件存在且为目录则为真 |
| -f 文件名 | 如果文件存在且为普通文件则为真 |
| -c 文件名 | 如果文件存在且为字符型特殊文件则为真 |
| -b 文件名 | 如果文件存在且为块特殊文件则为真 |
参考:
http://www.runoob.com/linux/linux-shell-test.html
Linux Shell数值比较和字符串比较及相关的更多相关文章
- linux shell数值比较和字符串比较
说明: 1. 把字符串当成整型进行比较,由于abcd等字符对不上0123当程序尝试去转成二进制时无法完成转换,所以用于数值比较的运算不能用于字符串比较:但是把整型当成字符串进行比较,0123这些数值完 ...
- 学习Linux shell脚本中连接字符串的方法
这篇文章主要介绍了Linux shell脚本中连接字符串的方法,如果想要在变量后面添加一个字符,可以用一下方法: 代码如下: $value1=home $value2=${value1}"= ...
- Linux Shell 高级变量及字符串
高级变量包含三个部分1.变量扩展2.命令替换3.算术扩展在Bash Shell中,$算符会触发到上述三种扩展,基本形式如下: 基本型 扩展种类 例子 ...
- shell 数值比较和字符串比较
1. 数值比较 -eq 是否相等(equal) -gt 是否大于(greater than) -ge 是否大于等于(greater and equal tha ...
- Linux shell用sed批量更改文件名的相关内容
示例 去除特定字符 目标:将指定目录下文件名中sprint替换为dev 方法: [root@Skip-ftp test]# for i in `ls` > do > name=`echo ...
- Linux shell利用sed如何批量更改文件名详解[转载]
需求背景: 目录A用来存放自动化的包生成的apk文件,现在开发修改了包名的 命名规则:环境名称(pro|uat)-release-日期-v版本号.apk 原来的是思路是通过正则表达式匹配新的包名,但 ...
- Linux - Shell - shell 执行方式
概述 shell 的执行方式 背景 偶尔执行个 shell 脚本 一般都用 './script' 执行 最近忽然看到 有不同的执行方式, 感觉有必要整理一下, 然后和大家分享 准备 os centos ...
- Linux编程 24 shell编程(结构化 if [ condition ] 数值比较,字符串比较)
一.概述 接着上篇讲的结构化命令,最后讲到了test命令的另一种写法 if [ condition ],它的语法格式如下: --格式如下: if [ condition ] then commands ...
- Linux Shell 截取字符串
Linux Shell 截取字符串 shell中截取字符串的方法很多 ${var#*/} ${var##*/} ${var%/*} ${var%%/*} ${var:start:len} ${var: ...
随机推荐
- RN 数据持久化存储服务API
一些数据信息需要存储在手机内存中,比如用户的登录名密码 token啥的,所以这就需要了来存这些信息 在RN中 采用了AsyncStorage是一个简单的.异步的.持久化的Key-Value存储系统,它 ...
- Intellij idea 2017 图标含义
File Type Icon Recognized in ActionScript files ActionScript files Ultimate Edition Active Server Pa ...
- Java中的异常 Exceptions
1. 概念 exception是“exceptional event”的缩写,是指执行程序中发生的事件,破坏了程序的正常执行流程.Java 异常处理机制使程序更加健壮易于调试,它可以告诉程序员三个问题 ...
- Windows下Apache服务器搭建
Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,是世界使用排名第一的Web服务器软件,可以在大多数计算机操作系统中运行,由于其多平台和安全性 ...
- vue中使用vw适配移动端
推荐看看大漠老师的文章,非常的有收获 如何在Vue项目中使用vw实现移动端适配 1.首先在项目中安装依赖 npm i postcss-aspect-ratio-mini postcss-px-to-v ...
- MySQL学习(八)
连接查询 1 集合的特点:无序性,唯一性 集合的运算:求并集,求交集,求笛卡尔积 表和集合的关系 一张表就是一个集合,每一行就是一个元素 疑问:集合不能重复,但我有可能两行数据完全一样 答:mysql ...
- AtCoder Grand Contest 025 B - RGB Coloring
B - RGB Coloring 求ax + by = k (0<=x<=n && 0<=y<=n)的方案数,最后乘上C(n, x)*C(n,y) 代码: #i ...
- 大数据时代的Python金融应用-Day1-Python与金融应用概述
一.Python语言的主要特征 1.开源性 Python和大多数的支撑库和工具都是开源的,通常可以非常灵活的使用而且有开放的协议. 2.解释性 也可以使用Cpython完成将解释性语言转化为实施可执行 ...
- nodejs导出excel
//导出Excel var nodeExcel = require("excel-export"); var fs = require("fs"); var c ...
- Access大数据高效分页语句
Access大数据高效分页语句 oracle的分页查询可以利用rowid伪列. db2的分页查询可以利用row_number() over()聚合函数. mysql有limit. access仿佛先天 ...