#!/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 或
! 非
分享到:
相关推荐
在IT行业中,Linux Shell脚本是系统管理员和开发者日常工作中不可或缺的工具,它允许用户通过命令行接口自动化执行一系列操作。本压缩包“shell脚本学习”提供了丰富的资源,帮助你深入理解并掌握Linux Shell脚本...
例如,检查两个字符串是否相等或不等,或者比较文件是否存在等。 需要注意的是,Shell中的数值比较只能处理整数,浮点数计算需借助`bc`。字符串比较时,大小写排序与`sort`命令不同。文件比较时,`test`命令可以...
- `-x`:输出到子Shell中(即环境变量)。 - `-i`:整型变量。 - `-a`:数组变量。 - **示例**:声明一个只读变量`NAME`: ```bash declare -r NAME="Jianyu Pan" ``` - **`printf`**:按照指定格式输出文本...
- `-x`: 将变量输出到子Shell中,即成为全局变量。 - `-i`: 将变量设为整型(integer)。 - `-a`: 将变量设置为一个数组(array)。 - **示例**: `declare -r myname=jypan` 创建只读变量。 - **printf**: 类似于...
关于Shell中的双引号,确实是一个值得提及的话题。在许多情况下,使用或不使用双引号不会产生明显的区别,但有些时候,双引号能够保护变量不受Shell特殊字符的影响,例如空格、通配符等。在上述示例中,如果`$STATUS...
c) **文件测试**:主要用于检查文件或目录的存在、权限、类型等,如`-e`(存在),`-f`(普通文件),`-d`(目录),`-s`(非空文件),`-r`(可读),`-w`(可写),`-x`(可执行)等。 在进行字符串比较时,...
本文将详细解析Linux Shell中的变量及其使用方法。 首先,Shell本地变量,也称为局部变量,仅在当前Shell会话中有效,不会影响其他Shell实例。它们通过`NAME=value`的格式来定义,如`HOME=/home/hbwork`。调用变量...
本篇文章将深入讲解Linux Shell中的变量。 首先,我们来看一下**本地变量**,也称为**SHELL本地变量**。这些变量只在其所在的Shell会话中有效,不会影响到其他独立的Shell实例。要创建一个本地变量,你可以按照...
在本篇教程中,将会介绍如何使用Python语言来处理CSV文件中的空值。CSV文件广泛应用于数据存储和交换,由于其结构简单和易于编辑,经常被用于各种数据分析和机器学习工作中。在实际使用过程中,由于各种原因,CSV...
在本篇文章中,我们将详细介绍几种常用的Shell判断变量是否为空的方法。 1. 使用`-n`选项: ```bash #!/bin/sh para1= if [ ! -n "$para1" ]; then echo "IS NULL" else echo "NOT NULL" fi ``` 在这个...
- **test命令**:`if [ -f file.c ]`检查file.c是否存在,`-f`是测试文件是否存在的条件。 - **if-then-else-if结构**:`elif`可以添加额外的条件分支。 3. **错误处理** - **变量未赋值**:在上面的示例中,...
5. **变量与环境变量**:Shell中的变量存储数据,可以是数字、字符串或空值。环境变量是全局的,所有子进程都能访问。常见的环境变量有`PATH`(定义可执行文件的搜索路径)和`HOME`(用户的主目录)。 6. **运算符...
- 检查变量是否已设置,避免空值错误。 - 尽量避免使用通配符,以防止意外匹配。 通过深入学习这十三个问题,你可以掌握Shell脚本的基本概念、语法和技巧,从而更有效地利用Shell进行系统管理和自动化任务。在...
占位型空值表示尚不知道是否存在该值。ANSI/ISO SQL-92 采用了一种通用的空值记号:NULL。 空值环境下的关系模型 在经典关系数据库中,关系模式定义不允许有空值,这极大地简化了问题的复杂性。引入空值后,对于每...
综上所述,在JavaScript中判断变量是否为空或null,需要根据具体场景选择合适的判断方式。编写函数时,应该注意比较运算符的使用、避免使用全局变量、并针对不同数据类型采取不同的判断策略。这些方法和注意事项可以...
本知识点将详细介绍如何在JavaScript中判断一个变量是否为以下空值:undefined、null、空字符串('')、布尔值false、数字0、空数组([])和空对象({}),并给出相应的代码实现。 首先,我们需要明确什么是“空值”。在...
这里的 `$btime` 在Shell中会被立即扩展,但结果会导致JSON格式错误,因为JSON中的字符串应当由双引号包围,而不是变量的空值。 在另一个例子中,发送包含多个键值对的JSON对象: ```bash curl -i -X POST -H '...
【键识别表空值状态SQL脚本】 判断表是否为空:表数据为空或者表数据不为空但是有... 4、脚本轻量,采用高级逻辑算法运行速度快,能够智能识别表是否完全空置,或是存在某个字段数据的空值情况,大大节省宝贵时间。
MySQL有一个特殊的等于运算符“”,当两个表达式彼此相等或都等于空值时,它的值为TRUE,其中有一个空值或都是非空值但不相等,这个条件就是FALSE。 【例】 查询Sell表中还未收货的订单情况。 SELECT * FROM Sell ...