shell-字符串多操作符综合实践多案例
1. 字符串测试举例
提示:下面的$file并未定义,而$file1 在上面测试中已定义。
范例1:单条件字符串测试:
[root@test-1 ~]# file1=/etc/services;file2=/etc/rc.local
[root@test-1 ~]# echo $file1 $file2
/etc/services /etc/rc.local
[root@test-1 ~]# [ -n "$file" ] && echo 1 ||echo 0
0
#若串长度不为0则真。因$file未定义长度为0,所以为假(0)
[root@test-1 ~]# [ -z "$file" ] && echo 1 ||echo 0
1
#若串长度为0则真。因$file未定义长度为0,所以为真(1)
[root@test-1 ~]# [ -n "$file1" ] && echo 1 ||echo 0
1
#若串长度不为0则真。因$file已定义变量长度不为0,所以为真(1)
[root@test-1 ~]# [ -z "$file1" ] && echo 1 ||echo 0
0
#若串长度为0则真。因$file已定义变量长度不为0,所以为假(0) 提示:去掉双引号看看
[root@test-1 ~]# [ -n $file ] && echo 1 ||echo 0
1
[root@test-1 ~]# [ -z $file1 ] && echo 1 ||echo 0
0
提示:字符串比较一定要加双引号
范例2(生产):系统脚本/etc/init.d/nfs字符串测试的应用:
# Remote quota server
[ -z "$RQUOTAD" ] && RQUOTAD=`type -path rpc.rquotad`
[ -z "$MOUNTD_NFS_V2" ] && MOUNTD_NFS_V2=default
[ -z "$MOUNTD_NFS_V3" ] && MOUNTD_NFS_V3=default # Number of servers to be started by default
[ -z "$RPCNFSDCOUNT" ] && RPCNFSDCOUNT=8
[ -n "$NLM_GRACE_PERIOD" ] && {
/sbin/sysctl -w fs.nfs.nlm_grace_period=$NLM_GRACE_PERIOD >/dev/null 2>&1
}
范例3:多条件字符串测试:
[root@test-1 ~]# file1=/etc/services;file2=/etc/rc.local
[root@test-1 ~]# echo $file1 $file2
/etc/services /etc/rc.local
[root@test-1 ~]# [ -n "$file" ] && echo 1 ||echo 0
0
#若串长度不为0则真。因$file未定义长度为0,所以为假(0)
[root@test-1 ~]# [ -z "$file" ] && echo 1 ||echo 0
1
#若串长度为0则真。因$file未定义长度为0,所以为真(1)
[root@test-1 ~]# [ -z "$file1" ] && echo 1 ||echo 0
0
[root@test-1 ~]# [ -z "$file1" -a -z "file2" ] && echo 1 ||echo 0
0
[root@test-1 ~]# [[ -z "$file1" && -z "file2" ]] && echo 1 ||echo 0
0
[root@test-1 ~]# [[ -z "$file1" || -n "file2" ]] && echo 1 ||echo 0
1
[root@test-1 ~]# [ -z "$file1" -o -z "file2" ] && echo 1 ||echo 0
0
[root@test-1 ~]# [ -n "$file1" -o -z "file2" ] && echo 1 ||echo 0
1
[root@test-1 ~]# [ "$file1" == "file2" ] && echo 1 ||echo 0
0
[root@test-1 ~]# [ "$file1" = "file2" ] && echo 1 ||echo 0
0
[root@test-1 ~]# [ "$file1" !== "file2" ] && echo 1 ||echo 0
-bash: [: !==: binary operator expected
0
[root@test-1 ~]# [ "$file1" != "file2" ] && echo 1 ||echo 0
1
[root@test-1 ~]# [ ! "$file1" == "file2" ] && echo 1 ||echo 0
1
[root@test-1 ~]# [ ! "$file1" \> "file2" ] && echo 1 ||echo 0
1
[root@test-1 ~]# [ ! "$file1" \< "file2" ] && echo 1 ||echo 0
0
[root@test-1 ~]# [ ! "${#file1}" \< "${#file2}" ] && echo 1 ||echo 0
1
shell-字符串多操作符综合实践多案例的更多相关文章
- Appium+python自动化(四十一)-Appium自动化测试框架综合实践 - 即将落下帷幕(超详解)
1.简介 今天我们紧接着上一篇继续分享Appium自动化测试框架综合实践 - 代码实现.到今天为止,大功即将告成:框架所需要的代码实现都基本完成. 2.data数据封装 2.1使用背景 在实际项目过程 ...
- linux shell 字符串操作(长度,查找,替换)详解
linux shell 字符串操作(长度,查找,替换)详解 在做shell批处理程序时候,经常会涉及到字符串相关操作.有很多命令语句,如:awk,sed都可以做字符串各种操作. 其实shell内置一系 ...
- Shell 字符串比较
转自网络 Shell字符串比较 收藏 Shell 中整数比较方法及字符串的比较方法,如等于,不等于,大于,大于等于,小于,等等. 二元比较操作符,比较变量或者比较数字.注意数字与字符串的区别. --- ...
- 【转】shell字符串截取
shell字符串的截取的问题: 一.Linux shell 截取字符变量的前8位,有方法如下: 1.expr substr “$a” 1 8 2.echo $a|awk ‘{print substr( ...
- Appium+python自动化(三十八) - Appium自动化测试框架综合实践 - 框架简介-助你冲击高薪,迎娶白富美(超详解)
简介 好久没有更新博客了,博友们是不是有点等不及了.不好意思啊,中秋节过后太忙了,这篇是好不容易抽点零碎时间写的.从这一篇开始小伙伴或者童鞋们,就跟随宏哥的脚步,一步步的从无到有,从0到1的搭建一个完 ...
- Appium+python自动化(四十二)-Appium自动化测试框架综合实践- 寿终正寝完结篇(超详解)
1.简介 按照上一篇的计划,今天给小伙伴们分享执行测试用例,生成测试报告,以及自动化平台.今天这篇分享讲解完.Appium自动化测试框架就要告一段落了. 2.执行测试用例&报告生成 测试报告, ...
- Quartz应用实践入门案例二(基于java工程)
在web应用程序中添加定时任务,Quartz的简单介绍可以参看博文<Quartz应用实践入门案例一(基于Web应用)> .其实一旦学会了如何应用开源框架就应该很容易将这中框架应用与自己的任 ...
- Quartz应用实践入门案例一(基于Web环境)
Quartz是一个完全由java编写的开源作业调度框架,正是因为这个框架整合了许多额外的功能,所以在使用上就显得相当容易.只是需要简单的配置一下就能轻松的使用任务调度了.在Quartz中,真正执行的j ...
- shell字符串操作详解
shell字符串操作详解的相关资料. 1.shell变量声明的判断 表达式 含义 ${var} 变量var的值, 与$var相同 ${var-DEFAULT} 如果var没有被声明, 那么就以$DE ...
随机推荐
- MySql 实现数组根据下标获取对应值逻辑(array[i]逻辑)
在使用sql模拟一段java逻辑开发时碰到有一段逻辑为从字符串数组中根据下标获取对应的值的情况,百度了一番没有发现有类似功能的函数和现成的实现方式,经过调试弄出来了,记录下来,以备参考 //举例:从数 ...
- html基础:js
js是一种脚本语言.在html中起到操控行为的作用.在html中,html代码如果是一个人的话,那么js就是这个人的行为 js在html的head中被引用,也可以在body中被引用.引用方式用< ...
- js中页面加载完成后执行的几种方法及执行顺序
在js和jquery使用中,经常使用到页面加载完成后执行某一方法.通过整理,大概是五种方式(其中有的只是书写方式不一样). 1:使用jQuery的$(function){}; 2:使用jquery的$ ...
- 使用wireshark分析MQTT协议
网络上搜索到两种用wireshark工具分析MQTT协议的方法,都是使用wireshark插件,一种是Wireshark Generic Dissector:另一种是使用lua脚本插件(推荐使用这种方 ...
- [程序员代码面试指南]栈和队列-最大值减去最小值 小于或等于num 的子数组的数量(单调队列)
题目 给定数组arr和整数num,求数组的子数组中有多少个的满足"最大值减去最小值<=num". 解题思路 分析题目,有结论: 如果数组arr[i...j]满足条件,则它的每 ...
- 软件开发过程中常用的环境解释DEV FAT UAT PRO
1.DEV Development environment 开发环境,用于开发者调试使用 2.FAT Feature Acceptance Test environment 功能验收测试环境,用于软件 ...
- PHP基础之面向对象篇
前言 前面写的都是运算符.流程控制.排序查找等,下面说一说面向对象的一些内容.这是前面写的,有兴趣可以去看一看. PHP入门之类型与运算符 PHP入门之流程控制 PHP入门之函数 PHP入门之数组 P ...
- nioServerChannel的的状态
转载自https://blog.csdn.net/zxhoo/article/details/17964353 Channel继承层次图分析上面提到的三个状态的时候,会去看Channel继承层次里某些 ...
- CSS3 新特性总结
1.边框 border-radius: 1-4 length|% / 1-4 length|%; 每个半径的四个值的顺序是:左上角,右上角,右下角,左下角.若省略左下角,和右上角相同,省略右下角,左上 ...
- xss的编码原理
把以前的笔记翻出来整理一下 最前方 xss如何选用编码原理,为什么 找到的挺清楚的文章了:https://www.cnblogs.com/p0laris/p/11898322.html浏览器解析有两种 ...