`
即可偶
  • 浏览: 21738 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

shell脚本判断条件

阅读更多

-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脚本的基本结构包括变量定义、条件判断、循环控制、函数定义等。 在描述中提到的学习`shell脚本`,主要涉及以下几个方面: 1. **基本语法**:包括变量声明(如`VAR=value`)、命令行参数(`$1`, `$2`等)、...

    Shell脚本学习教程PDF版

    首先,Shell脚本的基础包括变量、条件语句、循环结构和函数。变量是存储数据的地方,可以是文本、数字或者其他类型。在Shell脚本中,变量声明简单,直接赋值即可。条件语句(如if-else)用于根据不同的条件执行不同...

    Shell脚本编程100例

    以上这些例子涵盖了基本的Shell脚本操作,如变量使用、条件判断、流程控制、系统命令调用以及定时任务设置等。通过学习和实践这些脚本,可以深入了解Shell脚本编程,提升系统管理能力。对于Linux系统管理员、开发者...

    shell脚本shell脚本shell脚本

    4. **条件语句**:Shell脚本支持条件判断,如`if-else`结构: ```bash if [ -f "file.txt" ]; then echo "文件存在" else echo "文件不存在" fi ``` 这个例子检查“file.txt”是否存在。 5. **循环结构**:...

    shell脚本.pdf

    1. **基础语法**:Shell脚本的基础包括变量定义、条件语句(if-else)、循环结构(for, while)、函数定义等。变量在Shell中用来存储数据,可以通过"$"符号来引用。条件语句和循环结构用于控制程序的流程,根据不同...

    高级Shell脚本编程.zip

    **高级Shell脚本编程** Shell脚本编程是Linux/Unix系统中的重要技能,它是一种用于自动化任务、管理系统和实现批处理操作的脚本语言。在Linux环境中,Bash(Bourne-Again SHell)是最常用的Shell,它扩展了原始的...

    【shell脚本】shell脚本之条件判断if、for与while循环(shell脚本基础学习二)

    本文将深入探讨Shell脚本中的条件判断(if)、for循环和while循环,这些都是编写有效脚本的基础。 ### 条件判断 `if` `if` 语句在Shell脚本中用于根据特定条件执行不同的命令。以下是一些基本形式: 1. **单分支 ...

    shell脚本学习指南

    **Shell脚本学习指南** Shell脚本是Linux和Unix系统中的强大工具,它允许用户通过编写脚本来自动化一系列命令操作,极大地提高了系统管理和任务执行的效率。本文将深入探讨shell脚本的基础知识,包括语法、变量、...

    shell脚本-大数据

    例如,使用`curl`获取Web服务数据,`jq`解析JSON格式数据,`bash`函数和条件判断进行复杂逻辑控制,`parallel`进行并行处理,这些都极大地提高了数据处理的效率和灵活性。 综上所述,shell脚本在大数据领域具有广泛...

    LINUX SHELL 脚本攻略

    if语句用于判断条件并根据条件执行不同的命令序列。for循环和while循环可以执行重复性的任务,直到满足特定的退出条件。 4. 函数是将一系列命令组合在一起的方法,它们可以重复使用,提高脚本的可维护性和可读性。...

    shell脚本编程100例

    ### Shell脚本编程100例知识点详解 #### 1. Shell脚本基础 Shell脚本编程以#!/bin/bash开头,这是一个“shebang”行,它告诉系统这个脚本应该用哪个解释器来执行。"echo"命令用于输出信息,例如输出"hello world"。...

    shell脚本学习指南,中文清晰带书签

    - **条件判断**:使用if语句进行逻辑判断。 - 示例: ```bash if [ "$USER" == "Tom" ]; then echo "Welcome, $USER!" else echo "User not found." fi ``` - **循环结构**:for循环和while循环是常用的循环...

    shell脚本100例(最新版).pdf

    这些案例涵盖了Shell脚本的基础和进阶用法,包括命令行参数处理、文件操作、条件判断、循环结构以及系统监控等,对于Linux运维人员来说是非常有价值的参考资料。通过学习和实践这些脚本,可以提升Linux系统管理和...

    shell脚本的demo

    Shell脚本是Linux/Unix操作系统中用于自动化任务的编程语言,它基于Bash或其他Shell解释器。本示例“shell脚本的demo”提供了一个基础的教程,旨在帮助初学者理解并掌握Shell脚本的基本语法和用法。下面将详细阐述...

    250个shell脚本

    Shell脚本是Linux/Unix操作系统中的强大工具,它允许用户编写一系列命令,形成自动化任务,以提高工作效率。本文档收集了250个实用的Shell脚本实例,涵盖了多个应用场景,包括系统管理、安全防护、数据库备份等核心...

    Linux shell 脚本攻略源代码第二版

    在Shell脚本中,你可以使用`[ ]`或`[[ ]]`来进行条件检查,比如测试文件是否存在、比较数值或字符串。书中会详细解释这些操作符及其用法。 文件和目录操作也是Shell脚本的重要部分。例如,`cd`用于改变当前工作目录...

    shell脚本的常用格式及写法

    Shell脚本,全称为Bash Shell脚本,是Linux或Unix系统中的一种程序设计语言,它基于Shell命令行解释器,允许用户通过编写脚本来自动化一系列的系统操作。Shell脚本的编写对于日常的系统管理和自动化任务至关重要。...

    编写shell脚本经典教材

    "如何编写一个shell脚本.doc"文档可能包含具体的步骤和示例,教授如何从无到有地编写一个完整的Shell脚本,包括定义变量、处理输入参数、执行条件判断、进行文件操作等。 通过学习这些知识点,并结合实际的编程练习...

    Shell脚本学习指南_中文版,shell脚本基础,LINUX

    在IT领域,Shell脚本是Linux和Unix操作系统中不可或缺的一部分,它是一种强大的自动化工具,能够帮助用户执行一系列命令,简化日常任务。这个“Shell脚本学习指南_中文版”涵盖了从基础到进阶的Shell脚本知识,是...

Global site tag (gtag.js) - Google Analytics