- 浏览: 5467 次
- 性别:
- 来自: 北京
最新评论
整数比较
-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
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" ]
注意:在[]结构中"<"需要被转义.
> 大于,在ASCII字母顺序下.如:
if [[ "$a" > "$b" ]]
if [ "$a" /> "$b" ]
注意:在[]结构中">"需要被转义.
具体参考Example 26-11来查看这个操作符应用的例子.
-z 字符串为"null".就是长度为0.
-n 字符串不为"null"
混合比较
-a 逻辑与
exp1 -a exp2 如果exp1和exp2都为true的话,这个表达式将返回true
-o 逻辑或
exp1 -o exp2 如果exp1和exp2中有一个为true的话,那么这个表达式就返回true
这与Bash的比较操作符&&和||很相像.在[[]]中使用它.
1 [[ condition1 && condition2 ]]
-o和-a一般都是和test命令或者是[]一起工作.
1 if [ "$exp1" -a "$exp2" ]
注意事项:
S.C.指出,在使用混合比较的时候即使"$var"也可能会产生问题.如果$string为空的话,
[ -n "$string" -o "$a" = "$b" ]可能在某些版本的Bash中会有问题.为了附加一个额外
的字符到可能的空变量中的一种安全的办法是, [ "x$string" != x -o "x$a" = "x$b" ]
(the "x's" cancel out)(没看懂).cancel out是抵消的意思.
注意:
使用-n在[]结构中测试必须要用""把变量引起来.使用一个未被""的字符串来使用! -z
或者就是未用""引用的字符串本身,放到[]结构中。虽然一般情况下可
以工作,但这是不安全的.习惯于使用""来测试字符串是一种好习惯.
-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
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" ]
注意:在[]结构中"<"需要被转义.
> 大于,在ASCII字母顺序下.如:
if [[ "$a" > "$b" ]]
if [ "$a" /> "$b" ]
注意:在[]结构中">"需要被转义.
具体参考Example 26-11来查看这个操作符应用的例子.
-z 字符串为"null".就是长度为0.
-n 字符串不为"null"
混合比较
-a 逻辑与
exp1 -a exp2 如果exp1和exp2都为true的话,这个表达式将返回true
-o 逻辑或
exp1 -o exp2 如果exp1和exp2中有一个为true的话,那么这个表达式就返回true
这与Bash的比较操作符&&和||很相像.在[[]]中使用它.
1 [[ condition1 && condition2 ]]
-o和-a一般都是和test命令或者是[]一起工作.
1 if [ "$exp1" -a "$exp2" ]
注意事项:
S.C.指出,在使用混合比较的时候即使"$var"也可能会产生问题.如果$string为空的话,
[ -n "$string" -o "$a" = "$b" ]可能在某些版本的Bash中会有问题.为了附加一个额外
的字符到可能的空变量中的一种安全的办法是, [ "x$string" != x -o "x$a" = "x$b" ]
(the "x's" cancel out)(没看懂).cancel out是抵消的意思.
注意:
使用-n在[]结构中测试必须要用""把变量引起来.使用一个未被""的字符串来使用! -z
或者就是未用""引用的字符串本身,放到[]结构中。虽然一般情况下可
以工作,但这是不安全的.习惯于使用""来测试字符串是一种好习惯.
发表评论
-
Java代码优化策略
2012-09-17 23:51 0整理了一些影响性能的代码和优化方法,以后希望能陆续补充和优化 ... -
C++函数中那些不可以被声明为虚函数的函数
2012-09-16 10:59 0常见的不不能声明为虚函数的有:普通函数(非成员函数);静态成员 ... -
学习Blog
2012-09-16 10:51 0http://www.cnblogs.com/ttltry-a ... -
java代码优化前后性能对比测试
2012-09-13 10:37 0下面的代码是我用来比较代码优化前后的性能 im ... -
Java面试题经典
2012-09-11 16:12 01、sleep() 和 wait() 有什 ... -
Java byte 位移操作 注意事项
2012-09-03 11:39 0[size=medium][size=medium]Java对 ... -
Java移位运算
2012-09-03 10:22 574在Thinking in Java第三章中的一段话: ... -
找小球
2012-08-28 08:48 0面试流程中,经常需要回答一些刁钻的智力问答,当然这是IT公司必 ... -
Ant build.xml
2012-07-20 14:18 0# Licensed to the Apache Softwa ... -
eclipse配置
2012-07-20 14:03 6111.tab由空格代替 window -> prefere ... -
linux expr命令参数及用法详解
2012-07-18 08:02 0名称:expr ### 字串长度 shel ... -
注意设置httpclient连接数
2012-07-17 14:36 0在使用Httpclient的过程中,线上的酒店出现过一个问题, ... -
天外飞仙级别的Linux Shell命令
2012-07-15 17:21 0天外飞仙级别的Linux Shell命令 本文编译自comm ... -
linux中shell变量$#,$@,$0,$1,$2的含义
2012-07-13 22:57 720变量说明: $$ Shell本身的PID(Proces ... -
wget cook download
2012-07-03 12:59 0wget --post-data="theAc ... -
ThreadPoolExecutor
2012-06-30 08:51 0一、简介 线程池 ... -
linux下抓包命令--tcpdump的使用
2012-06-28 17:55 0例:tcpdump host 172.16.29.40 a ... -
一起共享tcpdump抓包分析的范例
2012-06-28 17:52 0找了很久抓包分析的一些例子,可以就是那么几个在不停的重复。抓包 ... -
tcpdump抓包分析详解
2012-06-28 17:48 0說實在的,對於 tcpdump 這個軟體來說,你甚至可以說 ... -
tcpdump 实用例子
2012-06-28 17:46 0#抓取指定端口报文的详细信息到指定文件 sudo /usr/ ...
相关推荐
### Shell字符串比较与数字判断详解 #### 一、概述 在Shell脚本编程中,进行...通过本文介绍的这些操作符和示例,你可以更好地理解和掌握Shell脚本中字符串和数字的比较方法,从而编写出更加强大和灵活的脚本程序。
例如,可以利用Shell的参数扩展功能来提取子串,或者使用文本处理工具如sed和awk等来执行复杂的字符串替换和插入操作。字符串的长度可以通过`expr length`命令来获得。而对于字符串的存储结构,除了可以简单地作为...
### Shell操作字符串详解 在Unix/Linux环境中,Shell脚本是一种强大的工具,用于处理各种系统任务和数据操作。其中,字符串操作是Shell脚本中最常见也是最基础的功能之一。本文将深入探讨Shell如何进行字符串操作,...
`expr` 是一个用于执行算术、比较和字符串操作的命令。对于字符串长度的计算,可以使用 `${#string}` 或 `expr length $string`。当字符串包含空格时,需要用双引号括起来。`expr` 的索引命令如 `expr index $...
在Linux系统中,Shell脚本是一种强大的工具,用于自动化任务执行和系统管理。当我们需要处理与网络相关的任务,如IP地址的转换时,Shell脚本能够提供方便且灵活的解决方案。IP地址通常有两种形式:点分十进制(例如...
* shell 编程中它们是没有类型的,简称弱类型编程语言,在这个变量中可以保含一个数字,一个字符串,一个单词等。你并不需要声明这个变量,它会在引用这个变量时创建它。 STR="Hello World!" echo $STR HOME="/...
Shell 脚本是 Linux 和 Unix 系统中非常重要的组成部分,它允许用户通过编写一系列命令来自动化复杂的任务。执行 Shell 脚本有两种主要方式: 1. **使用 shell 程序执行脚本** - **选择合适的 shell 程序**:不同...
在Shell编程中,字符的截取与处理是非常重要的一个环节,它涉及到如何有效地操作字符串、数字以及格式化输出等关键任务。本文将详细介绍`printf`命令在Shell编程中的应用,包括其基本语法、输出类型及格式化选项等...
1. **变量**:在Shell中,变量用于存储数据,可以是数字、字符串或路径等。例如,`NAME="John Doe"` 定义了一个名为NAME的变量。 2. **命令替换**:通过反引号 ` 或 `$()` 将命令的输出作为脚本的一部分。例如,`...
在Linux Shell脚本编程中,生成随机数和随机字符串是非常常见的需求。这篇文章主要探讨了两种在Linux Shell下生成随机数的方法以及如何生成随机字符串。首先,我们来看一下Linux Shell内置的 `$RANDOM` 变量。 `$...
* Shell 变量可以存储字符串、数字、布尔值等类型的数据 * Shell 变量可以被用来存储用户输入的数据、环境变量、命令的输出结果等 Shell 特殊变量: * $0:当前 Shell 脚本的名称 * $1、$2、$3 等:命令行参数 * ...
在Shell脚本中,字符串排序常常与其他命令结合使用,例如`grep`(过滤)、`awk`(文本处理)和`uniq`(去重)。熟练掌握这些基础工具的组合使用,能极大地提高Shell脚本处理文本数据的能力。在实际工作中,理解并...
* 使用 grep 命令在/etc/inittab 文件中查询“initdefault”字符串 * 使用 find 和 locate 命令查找/目录下所有以 main 开头的文件,并显示这些文件的内容 * 用 cp 命令将/etc 目录下的 inittab 文件和拷贝到/root ...
实验中还涉及到对变量的使用,变量是存储数据的容器,可以是数字、字符串或其他类型。在Shell脚本中,可以通过`declare`或`typeset`(ksh脚本)来定义变量的属性。例如,`declare -i number`将`number`设为整数变量...
在IT领域,Shell命令是Linux和Unix操作系统中的一个强大工具,它允许用户通过文本界面与操作系统进行交互。这本书“shell命令文档 中文版”提供了一个全面的指南,涵盖了所有基本到高级的Shell命令,这对于系统管理...
shell变量是shell中的一种数据存储单元,它可以存储字符串、数字、命令输出等数据。定义变量可以使用无引号、单引号、双引号等方式。单引号' '包围变量的值时,单引号里面是什么就输出什么,即使内容中有变量和命令...
3. 表达式与运算符:Shell脚本支持条件表达式、比较符(包括整数比较符和字符串比较符)、文件测试、布尔运算符、逻辑判断符、整数运算等。 4. 流程控制:包括if语句、for语句、while语句、case语句以及select语句...
在Shell编程中,字符串操作是十分常见的任务,其中包括字符串截取。本文主要总结了三种不同的字符串截取方法:截取字符变量的前8位、按指定的字符串截取以及按照指定要求分割字符串。 首先,我们来看如何截取字符...
本书共分五部分,详细介绍了shell编程技巧,各种UNIX命令及语法,还涉及了UNIX下的文字处理以及少量的系统管理问题。本书内容全面、文字简洁流畅,适合Shell编程人员学习、参考。 目 录 译者序 前言 第一部分 ...