shell字符串相等比较,注意对字符串为空的时候的处理

if [ "$test"x = "test"x ]

这里的关键有几点: 
1 使用单个等号 ,两个等号都可以
2 注意到等号两边各有一个空格:这是unix shell的要求 
3 注意到"$test"x最后的x,这是特意安排的,因为当$test为空的时候,上面的表达式就变成了x = testx,显然是不相等的。

而如果没有这个x,表达式就会报错:[: =: unary operator expected

时间: 2024-12-29 20:36:59

shell字符串相等比较,注意对字符串为空的时候的处理的相关文章

shell脚本实现检测回文字符串

所有回文字的结构特征如下: 如果字符数是偶数,那么它在结构上表现为:一个字符序列连着另一个字符相同但次序恰好相反的字符序列. 如果字符数为奇数,那么它在结构上表现为:一个字符序列连着另一个字符相同但次序恰好相反的字符序列,但是这两个序列中间共享一个相同的字符. sed命令能够记住之前匹配的子样式.可以用正则表达式:'\(.\)',匹配任意一个字符,\1表示其反向引用.如匹配有两个字符的回文正则表达式为: '\(.\)\(.\)\2\1' 匹配任意长度的回文脚本如下所示: #!/bin/bash

shell实现trim函数-去除字符串两侧的空格(包括tab,space键)

shell实现trim函数效果去除字符串两侧的空格,以下三个命令等价,都能实现 sed 's/^\s*//' totrim.txt |sed 's/\s*$//'>trimed.txtsed 's/^\s*//;s/\s*$//' totrim.txt>trimed.txtsed -e 's/^\s*//' -e 's/\s*$//' totrim.txt>trimed.txt 主要就是利用正则表达式,^\s*表示字符串前面的零个或多个空格,\s*$表示字符串后面的零个或多个空格.

学以致用十七----shell脚本之比较数字和字符串及if else

非常需要注意的是shell脚本对空格要求非常严格, 如: 比较字符串   (不能用于比较字符串) 以上这种写法会报错 因此比较字符串不用 单中括号 [ ] 而是用双中括号[ [ ] ] ,比较两字符串中间用等号,用eq,lt ,gt 不起作用 ,        (正确格式) 且注意中括号和字母之间要有空格,否则会报错    (错误格式) 比较数字则单双中括号都可以用,-eq -lt  -gt  > <  =没有限制,但中括号和字母之间必须要有空格 if else 也有严格的要求 有if 后者是

Linux shell】grep命令精确匹配字符串查找

需求: 精确匹配查找某个字符串 精确匹配: 例如: 在抽取字符串“48”,返回结果包含诸如484和483等包含“48”的其他字符串,实际上应精确抽取只包含48的各行. 使用grep抽取精确匹配的一种有效方式是在抽取字符串前加 \ <, 在抽取字符串后加 \ > .假定现在精确抽取48, 方法如下: #grep ' \ <48\>' filename 原文地址:https://www.cnblogs.com/mingzhang/p/11002241.html

黑马程序员---C基础9【字符串的输入输出】【字符串相关函数】【指针】【指针变量初始】【二级指针】

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- [字符串的输入输出] 1.字符串输出: %s-------从给定的地址开始输出字符直到遇到\0停止: printf("%s\n",&a[3]);  printf("%s\n",a); char a[]="hellowo\0rd!"; 2.字符串输入: 从键盘上接收一个字符串,保存在以a为首地址的字符数组中 scanf("%s&

字符串工具类(指定字符串的长度和判断是否为空等方法)

package com.sec.util; /** * 字符串工具类 * @author Administrator * */public class StringUtil { /** * 过滤<,>,\n 字符串的方法 * @param input * @return */ public static String filterHTML(String input){ if(input == null || input.length() == 0){ return input; } input

php截取某二个特殊字符串间的某段字符串

在php开发的过程中,有时候会用到截取某二个特殊字符串间的某个字符串,并对这个字符串做特殊的处理,那么对截取出来的字符串做什么特殊处理我们临时无论.我们今天先讲php截取某二个特殊字符串间的某个字符串的方法,以下我们以截取[start]到[/end]之间的字符串,当中的代码例如以下: <? php header('content-type:text/html;charset=utf-8'); $a=" 互联网出版许可证编号[start]华强北在线[/end]华强北商城,[start] ~~

PHP判断字符串中是否包含指定字符串,支持中文哦

RT,随手写的 1 /** 2 * 判断字符串中是否包含指定字符串 3 * @var source 源字符串 4 * @var target 要判断的是否包含的字符串 5 * @return bool 6 */ 7 function hasstring($source,$target){ 8 preg_match_all("/$target/sim", $source, $strResult, PREG_PATTERN_ORDER); 9 return !empty($strResul

用户输入一个字符串,如果以a结尾,则认为是合法字符串,否则为非法字符串,提示用户重新输入

import java.util.Scanner; /** * */ /** * Homework14 * * @Description:用户输入一个字符串,如果以a结尾,则认为是合法字符串,否则为非法字符串,提示用户重新输入. Test04 * * @author * * email: [email protected] 2017年4月21日上午12:27:02 * */public class Test04 { public static void main(String[] args) {

给定两个字符串,获取两个字符串中最大相同的子串

1 package weekpratisce; 2 3 ///给定两个字符串,获取两个字符串中最大相同的子串 4 public class Demo9 { 5 public static void main(String[] args) { 6 String xx = "aaaaaaaaaaddddddd", yy = "45ddddda"; 7 String str = getMaxsubstring(xx, yy); 8 System.out.println(s