****************************比较带空格的字符串相等的Shell脚本***************************

如果要比较的字符串中间有空格,可以用下面的程序(摘自《Unix Shells by Example, 3rd Edition》)

name="Joe Blow"

if [[ $name == "Joe Blow" ]]

then

printf "Hello $name\n"

fi

如果不带空格,则可以用下面的程序

name="Joe"

if [ $name = "Joe" ]

then

printf "Hello $name\n"

fi

需要注意的是方括号和等号的数目

****************************************如何比较两个字符串*******************************

我想在shell中完成如下的动作:VAR1=abcd VAR2=ef,那么按照c语言 VAR2大于VAR1了,

可是我看到shell中好象只能检测这两个字符串是否匹配 而不能比较大小啊

好像是不能比较大小。如果用变通的方式呢,似乎可考虑用sort等命令来组合。麻烦点儿。

if [ $VAR1 = `echo "$VAR1 $VAR2"|sort|head -1` ]

then

echo "VAR1 is little than VAR2"

else

echo "VAR1 is greater that VAR2"

fi

不错不错,今天加班也算有收获了

前面加一个相等时的判断,这个字符串比较函数就完整了,呵呵

实际上是利用了sort的排序功能,高

发现新问题:sort 排序时并不时按ascii值时行排序的,将sort的所有选项都试过了,也没能得到按ascii进行排序的结果。

迷惑!!!!

谁给解释并解决一下?

先谢了!

sort可以照字典序排列,通常和ascii值是一致的啊.

举个例子,大家来看一下.

to valentine:

例如以下两个文件a.txt和b.txt,其中括号内为行首字符的16进制ascii码,b.txt由a.txt排序所得,即sort a.txt >b.txt。可以看出,b.txt的内容并不是按ascii码内容从小到大排列的。

a.txt的内容:

(20 空格)

(09 tab)

_(5f)

-(2d)

1(31)

a(61)

A(41)

b.txt的内容:

(09 tab)

(20 空格)

A(41)

a(61)

1(31)

-(2d)

_(5f)

备注:测试环境为sco504。

又:informix排序时是按ascii值大小进行的,而c语言之strcmp好像也是按ascii值的大小进行比较。

对于字母,数字,空格和tab,如果设置正确的LC_CTYPE,sort的结果和ASCII序是一致的.

sco下试一下en_US.ascii.

如您所言,LC_CTYPE=en_US.ascii;export LC_CTYPE;sort a.txt >b.txt,b.txt果然按ascii值进行排序。

在solaris8 sparc 上实验通过 谢谢大家和斑竹

其他问题俺不懂,但

俺看第一个问题其实比较简单

expr $var1 > $var2 > /dev/null

是啊,俺也学到东西了

不过就楼主文题而言, expr $VAR1 < $VAR2 不就解决乎?

说错了大家打俺

没错啊,是用expr比较简单

shell 脚本比较字符串相等_比较带空格的字符串相等的Shell脚本 如何比较两个.....相关推荐

  1. 关于读入带空格的字符串与输入输出重定向

    一.读入带空格的字符串 由于NOIP官方开始使用C++14编译器,C语言中用于读取带空格字符串的gets()函数已经不可以再用了.作为替代,有以下方法. cin.getline()函数. 函数格式: ...

  2. 如何输入一串带空格的字符串?

    2016年11月16日                                    星期三                                     阴 如何输入一串带空格的字 ...

  3. 带空格的字符串输入问题

    #include<iostream> #include<string> using namespace std; int main(){string s1,s2;char s3 ...

  4. C/C++中带空格的字符串的输入

    问题一:带空格的字符串输入(c++) 对于字符数组 方法一:getline() 读入整行数据,使用回车键输入的换行符来确定输入结尾. 调用方法: cin.getline(str, len) 第一个参数 ...

  5. C语言带空格的字符串输入——gets()函数、scanf()函数缺陷以及改进后的gets_s()函数、scanf_s()函数的简单用法(上)

    **在C语言中,带空格的字符串输入问题相对而言还是比较"坑"的,所以呢,小编就决定要专门谈一谈这个问题,希望对于初学者能够有所帮助. 该篇主要简述了C语言中gets()函数以及sc ...

  6. shell for循环命令行_七年老运维实战中的 Shell 开发经验总结

    来源:良许Linux ID:liangxuxiansheng 无论是系统运维,还是应用运维,均可分为"纯手工"-> "脚本化"-> "自动 ...

  7. for循环批量写文件 shell_shell脚本:for循环批量重命名带空格文件名的文件

    今天在学习shell脚本攻略第二章2.13 批量重命名和移动时,由于我的文件命令有的文件名字中出现空格,出现了许多问题,因此将解决问题的过程记录了下来,希望能够和大家交流学习,共同进步,谢谢! 问题代 ...

  8. python字符串长度_如何使用python获取字符串长度?哪些方法?

    掌握多种python技巧,对于我们更好的灵活应用python是非常重要的,比如接下来给大家介绍的获取字节长度,那大家脑海里就该有印象了,有几种方法呢?一起来看下吧~ 1.使用len()函数 这是最直接 ...

  9. java字符串数组排序_在Java中对字符串数组进行排序

    允许用户使用字符串数组.他们可以向数组添加字符串,从数组中删除字符串,搜索数组中的字符串,最终他们将能够对数组进行排序.分类是搞砸我的原因.我尝试过几种不同的方法.第一种方法是将数组转换为ArrayL ...

最新文章

  1. 在Ubuntu 14.04 64bit上使用网络诊断工具mtr
  2. Python中pandas检查dataframe中是否包含某个字段、或者数据列实战、检查dataframe中是否包含某个字段集合
  3. Kubernetes — 生产环境架构简述
  4. 线程本地存储器——Windows核心编程学习手札之二十一
  5. Python 利用pickle库查看pkl文件实例演示,pkl是什么类型的文件?怎么来打开它?
  6. 第三周实践项目8 以第一个元素为分界线,将所有小于它的元素移到该元素的前面,将所有大于它的元素移到该元素的后面。
  7. c语言 结构体里使用动态数组_PHP 语法六数组使用及内部结构
  8. scss 里的 Mixins 用法介绍
  9. 西建大历年电子与通信工程复试真题_学姐分享2020年西安电子科技大学电子与通信工程考研初复试经验指导...
  10. 这张磁盘有写保护_架构师不得不了解的硬件知识 - 磁盘阵列RAID
  11. python中mat函数_Python中flatten( )函数及函数用法详解
  12. stream流常用方法_Java8 中用法优雅的 Stream,怪不得我之前总是看不懂别人写的代码!...
  13. Python入门--类的创建
  14. Python正则表达式初识(七)
  15. nvidia jetson xavier打开风扇,并设置开机启动
  16. 一文入手 JUC(20+单元)
  17. 使用Layer弹窗时遇到Layer.Close()后dom元素延迟性销毁的问题 @Gyb
  18. 【ACCV2022】论文阅读笔记Lightweight Alpha Matting Network Using Distillation-Based Channel Pruning
  19. 网易云信智码超清转码技术实践
  20. swing重写右上角叉号

热门文章

  1. 优化JS代码的34种方法(上)
  2. 计算机专业sci二区论文难吗,通信专业二区sci难吗
  3. 配置文件 web.config 的讨论
  4. git 多用户多仓库配置
  5. dobbo 简单框架
  6. loadrunner学习理论之一
  7. CCTF部分赛题分析
  8. 腾讯或联姻优酷,微信嫁女模式引发互联网通婚潮流
  9. 目录服务用户OSX: ARD的基于目录服务用户权限
  10. 如何编程得到数据库信息