昨天在定位一个bug的时候,需要用shell脚本对字符串进行比较,出了一个小问题,就搜索总结了一下。 第一种方法: eq 对比字符串是否相等,我首先想到的就是 eq,然而打印的结果不正确。看笔记: eq 检测两个整数是否相等,相等返回 true。 a eq b 返回false。 原来是我记错了, eq只支持整数的比较,而我比较的是字符串,当然不行了。 假如是小数比较的话,会报错: 代码与运行结果: ...
2018-03-02 09:09 0 22770 推荐指数:
#!/bin/sh #测试各种字符串比较操作。 #shell中对变量的值添加单引号,爽引号和不添加的区别:对类型来说是无关的,即不是添加了引号就变成了字符串类型, #单引号不对相关量进行替换,如不对$符号解释成变量引用,从而用对应变量的值替代,双引号则会进行替代 #author ...
原脚本代码 手动执行脚本结果和预想的一致 结果 但是加入crontab定时任务后,执行的结果却是错误的。 原因 这是因为if里的比较字符串用了==,这个比较符合在bash里是可以用的,但是在大部分的shell中都不能用,比如/bin/sh, 如果将此脚本的头部声明成 ...
涉及到比较和判断的时候,要注意 整数比较使用-lt,-gt,ge等比较运算符,详情参考:整数比较 文件测试使用 -d, -f, -x等运算发,详情参考:文件测试 逻辑判断使用 &&(且)、||(或)、!(取反) 字符串比较实用 字符串的比较使用以下三个 ...
一、问题 最近在写 shell 脚本的时候,遇到了一些小问题,就是我在判断一个字符串是否为空的时候经常报下面的错,程序是正常执行了,但是有这个提示很蛋疼,下面就是看看是什么问题导致的? 二、问题解析 原始脚本 我的脚本是这样写的 运行后 第一个问题: -eq 是用于比较两个 ...
比较两个字符串是否相等的办法是: if [ "$test"x = "test"x ]; then这里的关键有几点:1 使用单个等号2 注意到等号两边各有一个空格:这是unix shell的要求3 注意到"$test"x最后的x,这是特意安排的,因为当$test为空的时候,上面的表达式就变成了x ...
转自:http://qubaoquan.blog.51cto.com/1246748/292461 比较两个字符串是否相等的办法是: if [ "$test"x = "test"x ]; then 这里的关键有几点: 1 使用单个等号 2 注意到等号两边各有一个空格 ...