-b file 若文件存在且是一个块特殊文件,则为真
-c file 若文件存在且是一个字符特殊文件,则为真
-d file 若文件存在且是一个目录,则为真
-e file 若文件存在,则为真
-f file 若文件存在且是一个规则文件,则为真
-g file 若文件存在且设置了SGID位的值,则为真
-h file 若文件存在且为一个符合链接,则为真
-k file 若文件存在且设置了”sticky”位的值
-p file 若文件存在且为一已命名管道,则为真
-r file 若文件存在且可读,则为真
-s file 若文件存在且其大小大于零,则为真
-u file 若文件存在且设置了SUID位,则为真
-w file 若文件存在且可写,则为真
-x file 若文件存在且可执行,则为真
-o file 若文件存在且被有效用户ID所拥有,则为真
-z string 若string长度为0,则为真
-n string 若string长度不为0,则为真
string1 = string2 若两个字符串相等,则为真
string1 != string2 若两个字符串不相等,则为真
int1 -eq int2 若int1等于int2,则为真
int1 -ne int2 若int1不等于int2,则为真
int1 -lt int2 若int1小于int2,则为真
int1 -le int2 若int1小于等于int2,则为真
int1 -gt int2 若int1大于int2,则为真
int1 -ge int2 若int1大于等于int2,则为真
二元比较操作符,比较变量或者比较数字.注意数字与字符串的区别.
整数比较
-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"
注意:
使用-n在[]结构中测试必须要用""把变量引起来.使用一个未被""的字符串来使用! -z
或者就是未用""引用的字符串本身,放到[]结构中。虽然一般情况下可
以工作,但这是不安全的.习惯于使用""来测试字符串是一种好习惯.
!expr 若expr为假则复合表达式为真。expr可以是任何有效的测试表达式
expr1 -a expr2 若expr1和expr2都为真则整式为真
expr1 -o expr2 若expr1和expr2有一个为真则整式为真
特殊变量
$0 正在被执行命令的名字。对于shell脚本而言,这是被激活命令的路径
$n 该变量与脚本被激活时所带的参数相对应。n是正整数,与参数位置相对应($1,$2…)
$# 提供脚本的参数号
$* 所有这些参数都被双引号引住。若一个脚本接收两个参数,$*等于$1$2
$@ 所有这些参数都分别被双引号引住。若一个脚本接收到两个参数,$@等价于$1$2
$? 前一个命令执行后的退出状态
$$ 当前shell的进程号。对于shell脚本,这是其正在执行时的进程ID
$! 前一个后台命令的进程号
行末:$
行首:^
空格:\s
行末空格:\s\+$
行首空格:^\+\s
分享到:
相关推荐
首先,Shell脚本的基础包括变量、条件语句、循环结构和函数。变量是存储数据的地方,可以是文本、数字或者其他类型。在Shell脚本中,变量声明简单,直接赋值即可。条件语句(如if-else)用于根据不同的条件执行不同...
Shell脚本是Linux/Unix操作系统中的强大工具,它允许用户编写一系列命令,形成自动化任务,以提高工作效率。本文档收集了250个实用的Shell脚本实例,涵盖了多个应用场景,包括系统管理、安全防护、数据库备份等核心...
以上这些例子涵盖了基本的Shell脚本操作,如变量使用、条件判断、流程控制、系统命令调用以及定时任务设置等。通过学习和实践这些脚本,可以深入了解Shell脚本编程,提升系统管理能力。对于Linux系统管理员、开发者...
1. **基础语法**:Shell脚本的基础包括变量定义、条件语句(if-else)、循环结构(for, while)、函数定义等。变量在Shell中用来存储数据,可以通过"$"符号来引用。条件语句和循环结构用于控制程序的流程,根据不同...
**高级Shell脚本编程** Shell脚本编程是Linux/Unix系统中的重要技能,它是一种用于自动化任务、管理系统和实现批处理操作的脚本语言。在Linux环境中,Bash(Bourne-Again SHell)是最常用的Shell,它扩展了原始的...
本文将深入探讨Shell脚本中的条件判断(if)、for循环和while循环,这些都是编写有效脚本的基础。 ### 条件判断 `if` `if` 语句在Shell脚本中用于根据特定条件执行不同的命令。以下是一些基本形式: 1. **单分支 ...
**Shell脚本学习指南** Shell脚本是Linux和Unix系统中的强大工具,它允许用户通过编写脚本来自动化一系列命令操作,极大地提高了系统管理和任务执行的效率。本文将深入探讨shell脚本的基础知识,包括语法、变量、...
例如,使用`curl`获取Web服务数据,`jq`解析JSON格式数据,`bash`函数和条件判断进行复杂逻辑控制,`parallel`进行并行处理,这些都极大地提高了数据处理的效率和灵活性。 综上所述,shell脚本在大数据领域具有广泛...
if语句用于判断条件并根据条件执行不同的命令序列。for循环和while循环可以执行重复性的任务,直到满足特定的退出条件。 4. 函数是将一系列命令组合在一起的方法,它们可以重复使用,提高脚本的可维护性和可读性。...
### Shell脚本编程100例知识点详解 #### 1. Shell脚本基础 Shell脚本编程以#!/bin/bash开头,这是一个“shebang”行,它告诉系统这个脚本应该用哪个解释器来执行。"echo"命令用于输出信息,例如输出"hello world"。...
- **条件判断**:使用if语句进行逻辑判断。 - 示例: ```bash if [ "$USER" == "Tom" ]; then echo "Welcome, $USER!" else echo "User not found." fi ``` - **循环结构**:for循环和while循环是常用的循环...
这些案例涵盖了Shell脚本的基础和进阶用法,包括命令行参数处理、文件操作、条件判断、循环结构以及系统监控等,对于Linux运维人员来说是非常有价值的参考资料。通过学习和实践这些脚本,可以提升Linux系统管理和...
Shell脚本是Linux/Unix操作系统中用于自动化任务的编程语言,它基于Bash或其他Shell解释器。本示例“shell脚本的demo”提供了一个基础的教程,旨在帮助初学者理解并掌握Shell脚本的基本语法和用法。下面将详细阐述...
在Shell脚本中,你可以使用`[ ]`或`[[ ]]`来进行条件检查,比如测试文件是否存在、比较数值或字符串。书中会详细解释这些操作符及其用法。 文件和目录操作也是Shell脚本的重要部分。例如,`cd`用于改变当前工作目录...
Shell脚本,全称为Bash Shell脚本,是Linux或Unix系统中的一种程序设计语言,它基于Shell命令行解释器,允许用户通过编写脚本来自动化一系列的系统操作。Shell脚本的编写对于日常的系统管理和自动化任务至关重要。...
"如何编写一个shell脚本.doc"文档可能包含具体的步骤和示例,教授如何从无到有地编写一个完整的Shell脚本,包括定义变量、处理输入参数、执行条件判断、进行文件操作等。 通过学习这些知识点,并结合实际的编程练习...
在IT领域,Shell脚本是Linux和Unix操作系统中不可或缺的一部分,它是一种强大的自动化工具,能够帮助用户执行一系列命令,简化日常任务。这个“Shell脚本学习指南_中文版”涵盖了从基础到进阶的Shell脚本知识,是...
Shell脚本支持条件判断(`if`、`else`、`elif`)、循环(`for`、`while`)以及函数等结构,允许编写复杂的逻辑。例如,你可以使用`if`语句检查文件是否存在,或者使用`for`循环遍历文件夹中的所有文件。 通过熟练...
Shell脚本的条件控制通过if、case等结构实现,可以进行条件分支处理。循环控制结构有for循环、while循环、until循环和select循环。其中,for循环和while循环用于遍历执行一组命令,until循环则在条件为真时才停止...