比较两个字符串是否相等的办法是: if [ "$test"x = "test"x ]; then 这里的关键有几点: 1 使用单个等号 2 注意到等号两边各有一个空格:这是unix shell的要求 3 注意到"$test"x最后的x,这是特意安排的,因为当$test为空的时候,上面的表达式就变成了x = testx,显然是不相等的。而如果没有这个x,表达式就会报错:[: =: unary operator expected 二元比较操作符,比较变量或者比较数字.注意数字与字符串的区别. 整数比较 -eq 等于,如:if [ "$a" -eq "$b" ] -ne 不等于,如:if [ "$a" -ne "$b" ] -gt 大于,如:if [ "$a" -gt "$b" ] -ge 大于等于,如:if [ "$a" -ge "$b" ] -lt 小于,如:if [ "$a" -lt "$b" ] -le 小于等于,如:if [ "$a" -le "$b" ] 大于(需要双括号),如:(("$a" > "$b")) >= 大于等于(需要双括号),如:(("$a" >= "$b")) 小数据比较可使用AWK 字符串比较 = 等于,如:if [ "$a" = "$b" ] == 等于,如:if [ "$a" == "$b" ],与=等价 注意:==的功能在[[]]和[]中的行为是不同的,如下: 1 [[ $a == z* ]] # 如果$a以"z"开头(模式匹配)那么将为true 2 [[ $a == "z*" ]] # 如果$a等于z*(字符匹配),那么结果为true 3 4 [ $a == z* ] # File globbing 和word splitting将会发生 5 [ "$a" == "z*" ] # 如果$a等于z*(字符匹配),那么结果为true 一点解释,关于File globbing是一种关于文件的速记法,比如"*.c"就是,再如~也是. 但是file globbing并不是严格的正则表达式,虽然绝大多数情况下结构比较像. != 不等于,如:if [ "$a" != "$b" ] 这个操作符将在[[]]结构中使用模式匹配. 大于,在ASCII字母顺序下.如: if [[ "$a" > "$b" ]] if [ "$a" > "$b" ] 注意:在[]结构中">"需要被转义. 具体参考Example -来查看这个操作符应用的例子. -z 字符串为"null".就是长度为0. -n 字符串不为"null" 注意: 使用-n在[]结构中测试必须要用""把变量引起来.使用一个未被""的字符串来使用! -z 或者就是未用""引用的字符串本身,放到[]结构中。虽然一般情况下可 以工作,但这是不安全的.习惯于使用""来测试字符串是一种好习惯.
推荐整理分享比较两个字符串是否相等的shell代码(比较两个字符串的值是否相等),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:比较两个字符串的值是否相等,比较两个字符串是否一致,比较两个字符串是否相等C语言,比较两个字符串的大小用什么函数,比较两个字符串是否相等C语言,比较两个字符串的大小,比较两个字符串是否一致,比较两个字符串的大小用什么函数,内容如对您有帮助,希望把文章链接给更多的朋友!
shell脚本运行5秒后自动退出的代码 #!/bin/bash#nameshow_status.sh#echo$$/var/run/show_status.log#sleep5&&kill`cat/var/run/show_status.log`startcodeecho"helloworld"#endcode
expect中为send语句上加变量的代码 #!/usr/bin/expectsetssh_user"fivetrees"setpassword""spawnssh-i/root/.ssh/$ssh_userroot@xiaopp.3f.comexpect_before"no)?"{send"yesr"}sleep1expect"Enterpassphraseforkey*"send"$passwordr"for{setsn
sed找到关键字所在行并将其前面的第一个字符删除的命令 sed找到关键字所在行并将其前面的第一个字符删除:sed-i'/httpd-vhosts/s/^#//'httpd.conf#Includeconf/extra/httpd-vhosts.conf说明:以httpd-vhosts为关键字找到这行,并将