shell字符串比较、判断是否为数字
二元比较操作符,比较变量或者比较数字.注意数字与字符串的区别.
整数比较
-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"))
> 大于(需要双括号),如:((”$a” > “$b”))
>= 大于等于(需要双括号),如:((”$a” >= “$b”))
字符串比较
= 等于,如:if [ "$a" = "$b" ]
== 等于,如:if [ "$a" == "$b" ],与=等价
注意:==的功能在[[]]和[]中的行为是不同的,如下:
1 [[ $a == z* ]] # 如果$a以”z”开头(模式匹配)那么将为true
2 [[ $a == "z*" ]] # 如果$a等于z*(字符匹配),那么结果为true
3 [ $a == z* ] # File globbing 和word splitting将会发生
4 [ "$a" == "z*" ] # 如果$a等于z*(字符匹配),那么结果为true
一点解释,关 于File globbing是一种关于文件的速记法,比如”*.c”就是,再如~也是.
但是file globbing并不是严格的正则表达式,虽然绝大多数情况下结构比较像.
!= 不等于,如:if [ "$a" != "$b" ]
这 个操作符将在[[]]结构中使用模式匹配.
< 小于,在ASCII字母顺序下.如:
if [[ "$a" < "$b" ]]
if [ "$a" \< "$b" ]
注意:在[]结构中"<"需要被转义.
> 大于,在ASCII字母顺序下.如:
if [[ "$a" > "$b" ]]
if [ "$a" \> "$b" ]
注 意:在[]结构中”>”需要被转义.
具体参考Example 26-11来查看这个操作符应用的例子.
-z 字符串为”null”.就是长度为0.
-n 字符串不为”null”
注意:
使用-n在[]结构中测试必须要用”"把变量引起来. 使用一个未被”"的字符串来使用! -z
或者就是未用”"引用的字符串本身,放到[]结构中。虽然一般情况下可
以工作,但这是不安全的. 习惯于使用”"来测试字符串是一种好习惯.好习惯.
shell字符串的截取
JUL
9
shell字符串的截取
Filed under: Shell |
shell字符串的截取的问题:
一、Linux shell 截取字符变量的前8位,有方法如下:
1.expr substr “$a” 1 8
2.echo $a|awk ‘{print substr(,1,8)}’
3.echo $a|cut -c1-8
4.echo $
5.expr $a : ‘\(.\\).*’
6.echo $a|dd bs=1 count=8 2>/dev/null
二、按指定的字符串截取
1、第一种方法:
${varible##*string} 从左向右截取最后一个string后的字符串
${varible#*string}从左向右截取第一个string后的字符串
${varible%%string*}从右向左截取最后一个string后的字符串
${varible%string*}从右向左截取第一个string后的字符串
“*”只是一个通配符可以不要
例子:
$ MYVAR=foodforthought.jpg
$ echo ${MYVAR##*fo}
rthought.jpg
$ echo ${MYVAR#*fo}
odforthought.jpg
2、第二种方法:${varible:n1:n2}:截取变量varible从n1到n2之间的字符串。
可以根据特定字符偏移和长度,使用另一种形式的变量扩展,来选择特定子字符串。试着在 bash 中输入以下行:
$ EXCLAIM=cowabunga
$ echo ${EXCLAIM:0:3}
cow
$ echo ${EXCLAIM:3:7}
abunga
这种形式的字符串截断非常简便,只需用冒号分开来指定起始字符和子字符串长度。
三、按照指定要求分割:
比如获取后缀名
ls -al | cut -d “.” -f2
分享到:
相关推荐
### Shell字符串比较与数字判断详解 #### 一、概述 在Shell脚本编程中,进行字符串和数字的比较是一项常见的任务。本文将详细介绍如何在Shell脚本中进行字符串和数字的比较,包括基本的比较操作符及其使用场景,并...
### Shell中字符串截取 在Shell脚本编程中,对字符串进行截取是常见的操作之一。通过对字符串的处理,可以实现各种数据解析、文件名提取等实用功能。本文将详细介绍几种常用的Shell中字符串截取方法及其应用场景。 ...
### Shell中的字符串处理方法 #### 引言 在Shell编程中,字符串处理是一项重要的技能,尤其是在Linux环境下。本文将深入探讨几种高效的字符串处理技术,并通过实际示例展示这些技巧的应用场景。 #### 字符串截断 ...
在上述示例中,字符串比较使用了单个方括号`[]`,这是Shell脚本传统的字符串比较语法。 case语句是Shell脚本中用于根据变量的值选择执行不同代码块的一种结构,相当于其他编程语言中的switch语句。在Shell脚本中...
### Shell脚本中计算字符串长度的五种方法 在日常的Shell脚本开发工作中,我们经常需要处理字符串,其中计算字符串长度是一个常见的需求。本文将详细介绍五种在Shell脚本中计算字符串长度的方法,并对每种方法进行...
在IT领域,shell script是一...总的来说,字符串比较脚本在IT工作中是一个非常实用的技能,它涉及到文本处理、文件操作、流程控制等多方面的知识。熟练掌握这些技巧,能够帮助我们更高效地处理大量数据,提高工作效率。
### Shell操作字符串详解 在Unix/Linux环境中,Shell脚本是一种强大的工具,用于处理各种系统任务和数据操作。其中,字符串操作是Shell脚本中最常见也是最基础的功能之一。本文将深入探讨Shell如何进行字符串操作,...
要获取字符串的长度,可以使用`${#var}`语法,例如: ```bash str="Example String" length=${#str} echo $length # 输出 "12" ``` 三、字符串截取 - `${var}`:输出整个字符串。 - `${var:offset}`:从offset...
本文将对Bash Shell字符串操作进行详细的总结,包括取长度、查找位置、选取与截取子串、字符串替换以及比较和连接等方法。 1. **取长度** 取得字符串长度有两种方式。第一种是使用`expr length`命令,如`expr ...
在Shell脚本编程中,比较两个字符串是否相等是一项基础且重要的任务。下面将详细讲解如何在Shell中进行字符串比较,以及涉及的一些特殊注意事项。 首先,最基础的字符串相等比较可以通过以下方式实现: ```bash if...
变量可以包含字符串、数字等。声明变量时不需要指定类型,直接赋值即可,如 `name="John"`。 2. **变量分类与数组**:除了普通变量,还有环境变量和位置参数。数组在 Bash 中需要特别的语法来声明和访问,如 `my_...
这些文件通常包含DOS命令行指令,可以帮助用户完成一系列重复性的任务,如字符串的提取和替换。在本文中,我们将深入探讨如何在BAT文件中进行字符串操作,包括提取和替换,以及相关的DOS命令和技巧。 1. **字符串...
本文将详细探讨这两种Shell中的表达式比较,包括字符串比较、数字比较、文件操作以及逻辑操作符。 首先,我们来看字符串比较。在Bash中,使用`=`, `!=`来进行字符串的等价和非等价比较,例如`str1 = str2`表示`str1...
### Linux Shell字符串内置操作详解 在Linux环境下进行脚本编程时,经常需要用到字符串处理功能。虽然像`awk`和`sed`这样的工具提供了强大的文本处理能力,但是它们启动时需要额外的时间开销。相比之下,shell自身...
内容概要:本文详细介绍了Shell脚本编程中变量和字符串的基本用法。涵盖的内容包括变量的定义和赋值、特殊变量的应用、字符串的各种操作如拼接、长度计算、子串提取、查找子串位置、替换子串以及不同类型的引号使用...
- Shell提供了 `${#string}` 的语法来获取字符串的长度。如 `string="abcd"`,`echo ${#string}` 将输出4,表示字符串`abcd`的长度为4。 3. 提取子字符串: - 使用 `${string:offset:length}` 结构可以提取字符串...
在Shell脚本编程中,处理字符串是常见的任务之一,其中包括计算字符串长度和判断字符串是否为空。下面我们将详细探讨这两种操作的几种实现方法。 首先,我们来看如何计算字符串的长度。在Shell脚本中有三种常见的...
在Shell脚本编程中,字符串处理是不可或缺的一部分。本文将深入探讨如何在Shell中实现字符串拼接,通过实例代码详细解析各个方法。 1. **字符串声明** 在Shell中,可以使用双引号或单引号来声明字符串。双引号允许...