`
quanminchaoren
  • 浏览: 924348 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Linux shell脚本中判断变量文件目录:权限、是否存在、空值、相等

 
阅读更多

#!/bin/sh
myPath="/var/log/httpd/"
myFile="/var /log/httpd/access.log"

#这里的-x 参数判断$myPath是否存在并且是否具有可执行权限
if [ ! -x "$myPath"]; then
mkdir "$myPath"
fi

#这里的-d 参数判断$myPath是否存在
if [ ! -d "$myPath"]; then
mkdir "$myPath"
fi

#这里的-f参数判断$myFile是否存在
if [ ! -f "$myFile" ]; then
touch "$myFile"
fi

#其他参数还有-n,-n是判断一个变量是否是否有值
if [ ! -n "$myVar" ]; then
echo "$myVar is empty"
exit 0
fi

#两个变量判断是否相等
if [ "$var1" == "$var2" ]; then
echo '$var1 eq $var2'
else
echo '$var1 not eq $var2'
fi


      if list then
          do something here
      elif list then
          do another thing here
      else
         do something else here
      fi
   

EX1:

#!/bin/sh

SYSTEM=`uname -s`    #获取操作系统类型,我本地是linux

if [ $SYSTEM = "Linux" ] ; then     #如果是linux的话打印linux字符串
echo "Linux"
elif [ $SYSTEM = "FreeBSD" ] ; then   
echo "FreeBSD"
elif [ $SYSTEM = "Solaris" ] ; then
echo "Solaris"
else
echo "What?"
fi     #ifend

基本上和其他脚本语言一样。没有太大区别。不过值得注意的是。[]里面的条件判断。

1 字符串判断

str1 = str2      当两个串有相同内容、长度时为真
str1 != str2      当串str1和str2不等时为真
-n str1        当串的长度大于0时为真(串非空)
-z str1        当串的长度为0时为真(空串)
str1           当串str1为非空时为真

2 数字的判断

int1 -eq int2    两数相等为真
int1 -ne int2    两数不等为真
int1 -gt int2    int1大于int2为真
int1 -ge int2    int1大于等于int2为真
int1 -lt int2    int1小于int2为真
int1 -le int2    int1小于等于int2为真

3 文件的判断

-r file     用户可读为真
-w file     用户可写为真
-x file     用户可执行为真
-f file     文件为正规文件为真
-d file     文件为目录为真
-c file     文件为字符特殊文件为真
-b file     文件为块特殊文件为真
-s file     文件大小非0时为真
-t file     当文件描述符(默认为1)指定的设备为终端时为真

3 复杂逻辑判断

-a         与
-o        或
!        非

分享到:
评论

相关推荐

    shell脚本学习

    在IT行业中,Linux Shell脚本是系统管理员和开发者日常工作中不可或缺的工具,它允许用户通过命令行接口自动化执行一系列操作。本压缩包“shell脚本学习”提供了丰富的资源,帮助你深入理解并掌握Linux Shell脚本...

    linuxshell脚本学习笔记文.pdf

    例如,检查两个字符串是否相等或不等,或者比较文件是否存在等。 需要注意的是,Shell中的数值比较只能处理整数,浮点数计算需借助`bc`。字符串比较时,大小写排序与`sort`命令不同。文件比较时,`test`命令可以...

    强力推荐Shell 脚本教程 ppt

    - `-x`:输出到子Shell中(即环境变量)。 - `-i`:整型变量。 - `-a`:数组变量。 - **示例**:声明一个只读变量`NAME`: ```bash declare -r NAME="Jianyu Pan" ``` - **`printf`**:按照指定格式输出文本...

    linux shell 简明教程.pdf

    - `-x`: 将变量输出到子Shell中,即成为全局变量。 - `-i`: 将变量设为整型(integer)。 - `-a`: 将变量设置为一个数组(array)。 - **示例**: `declare -r myname=jypan` 创建只读变量。 - **printf**: 类似于...

    shell脚本报错:"[: =: unary operator expected"解决办法

    关于Shell中的双引号,确实是一个值得提及的话题。在许多情况下,使用或不使用双引号不会产生明显的区别,但有些时候,双引号能够保护变量不受Shell特殊字符的影响,例如空格、通配符等。在上述示例中,如果`$STATUS...

    Linux常用命令和管理10-shell之条件测试及脚本实例11

    c) **文件测试**:主要用于检查文件或目录的存在、权限、类型等,如`-e`(存在),`-f`(普通文件),`-d`(目录),`-s`(非空文件),`-r`(可读),`-w`(可写),`-x`(可执行)等。 在进行字符串比较时,...

    linux中的变量详解[参考].pdf

    本文将详细解析Linux Shell中的变量及其使用方法。 首先,Shell本地变量,也称为局部变量,仅在当前Shell会话中有效,不会影响其他Shell实例。它们通过`NAME=value`的格式来定义,如`HOME=/home/hbwork`。调用变量...

    linux中的变量详细讲解.doc

    本篇文章将深入讲解Linux Shell中的变量。 首先,我们来看一下**本地变量**,也称为**SHELL本地变量**。这些变量只在其所在的Shell会话中有效,不会影响到其他独立的Shell实例。要创建一个本地变量,你可以按照...

    linux shell中curl 发送post请求json格式问题的处理方法

    这里的 `$btime` 在Shell中会被立即扩展,但结果会导致JSON格式错误,因为JSON中的字符串应当由双引号包围,而不是变量的空值。 在另一个例子中,发送包含多个键值对的JSON对象: ```bash curl -i -X POST -H '...

    python处理csv中的空值方法

    在本篇教程中,将会介绍如何使用Python语言来处理CSV文件中的空值。CSV文件广泛应用于数据存储和交换,由于其结构简单和易于编辑,经常被用于各种数据分析和机器学习工作中。在实际使用过程中,由于各种原因,CSV...

    shell判断一个变量是否为空方法总结

    在本篇文章中,我们将详细介绍几种常用的Shell判断变量是否为空的方法。 1. 使用`-n`选项: ```bash #!/bin/sh para1= if [ ! -n "$para1" ]; then echo "IS NULL" else echo "NOT NULL" fi ``` 在这个...

    shell编程入门.docx

    - **test命令**:`if [ -f file.c ]`检查file.c是否存在,`-f`是测试文件是否存在的条件。 - **if-then-else-if结构**:`elif`可以添加额外的条件分支。 3. **错误处理** - **变量未赋值**:在上面的示例中,...

    shell基础 (pdf) txt版 ,适合于初级和高级shell编程者

    5. **变量与环境变量**:Shell中的变量存储数据,可以是数字、字符串或空值。环境变量是全局的,所有子进程都能访问。常见的环境变量有`PATH`(定义可执行文件的搜索路径)和`HOME`(用户的主目录)。 6. **运算符...

    13_questions_of_shell, shell十三问--shell教程(markdown 版本).zip

    - 检查变量是否已设置,避免空值错误。 - 尽量避免使用通配符,以防止意外匹配。 通过深入学习这十三个问题,你可以掌握Shell脚本的基本概念、语法和技巧,从而更有效地利用Shell进行系统管理和自动化任务。在...

    判断表是否为空:表数据为空或者表数据不为空但是有任何一个字段为空都返回0,否则返回1

    【键识别表空值状态SQL脚本】 判断表是否为空:表数据为空或者表数据不为空但是有... 4、脚本轻量,采用高级逻辑算法运行速度快,能够智能识别表是否完全空置,或是存在某个字段数据的空值情况,大大节省宝贵时间。

    SQL Server中的空值问题.pdf

    占位型空值表示尚不知道是否存在该值。ANSI/ISO SQL-92 采用了一种通用的空值记号:NULL。 空值环境下的关系模型 在经典关系数据库中,关系模式定义不允许有空值,这极大地简化了问题的复杂性。引入空值后,对于每...

    JS判断变量是否为空判断是否null

    综上所述,在JavaScript中判断变量是否为空或null,需要根据具体场景选择合适的判断方式。编写函数时,应该注意比较运算符的使用、避免使用全局变量、并针对不同数据类型采取不同的判断策略。这些方法和注意事项可以...

    js判断变量是否空值的代码

    本知识点将详细介绍如何在JavaScript中判断一个变量是否为以下空值:undefined、null、空字符串('')、布尔值false、数字0、空数组([])和空对象({}),并给出相应的代码实现。 首先,我们需要明确什么是“空值”。在...

    MySQL数据库:空值比较.pptx

    MySQL有一个特殊的等于运算符“”,当两个表达式彼此相等或都等于空值时,它的值为TRUE,其中有一个空值或都是非空值但不相等,这个条件就是FALSE。 【例】 查询Sell表中还未收货的订单情况。 SELECT * FROM Sell ...

Global site tag (gtag.js) - Google Analytics