每天三分钟搞定linux shell脚本10 字符串相关的if判断

每天三分钟搞定linux shell脚本10 字符串相关的if判断,第1张

字符串比较包括

注意 :这里的符号要 转义 ,否则变成了重定向了。

运行结果:

注意 :上面的 等号左右两侧 中括号内侧 一定要有空格

运行结果:

以上的例子,说明 小写字母排在字典的后面 (类似于ascii的大小)。

sort 可以对字符串排序,sort 命令会把小写字母放在前面

运行结果:

注意上面的 中括号内侧 一定要有空格。

注意 :有时候想在字符串比较的时候使用 正则表达式 ,可以使用 双方括号 ,如:

运行如下:

注意:上面的 双等号左右两侧,中括号内侧 一定要有空格

#!/usr/bin/python import sys fin=open(sys.argv[1]) fout=open(sys.argv[1]+'.new',"w") line=fin.readline() while line!='': line=line.replace(sys.argv[2],sys.argv[3]) fout.write(line) line=fin.readline() fin.close() fout.close() 各linux里基本都有python的,将上面保存为rp.py,替换某文件中字符串格式 ./rp.py ~/tmp.txt aaa xxx 将自己家目录中的tmp.txt中所有aaa替换为xxx 新产生的文件也在tmp.txt目录中,叫tmp.txt.new

shell中有两种比较,一种是字符串比较,直接使用运算符号进行比较,一种是值的比较(即数字的比较)只能使用关键字进行比较即-eq -lt等

当然也能使用关键字进行字符串的比较,比如-z 来判断一个字符串是否为空

来一个例子

#!/bin/bash

a=1

if [ $a = 1 ]

then

echo =

fi

if [ $a -eq 1 ]

then

echo eq

fi

这时第一个if中的a既是进行了字符的比较,第二个if中是数值的比较。但结果是既输出了= 也输出了eq。就是说a即和数字的1相等,也和字符的1相等


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8742747.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-20
下一篇 2023-04-20

发表评论

登录后才能评论

评论列表(0条)

保存