条件判断的写法
[ 条件表达式 ]
[[ 条件表达式 ]]
注意这里在[]中开始和结尾需要空格,不然运行会出错
例子
#!/bin/bash
a=0
b=1
[ $a -eq $b ]
echo " a不等于b"片
这里提一下bash shell中一些需要注意的东西
1整数比较
-eq 表示 =
-ne 表示 !=
-gt 表示 >
-lt 表示 <
-ge 表示 >=
-le表示 <=
2命令间的逻辑关系
辑与:&&
第一个条件为假 第二个条件不用在判断,结果为假
第一个条件为真,第二个条件必须得判断。必须两个同时为真才为真
逻辑或:||
第一个条件为假,继续判断第二个。只需要有一个为真,即为真
3符串比较
== 等于 两边要有空格
!= 不等
> 大于
< 小于
文件比较
-z string 测试指定字符是否为空,空着真,非空为假
-n string 测试指定字符串是否为不空,空为假 非空为真
-e FILE 测试文件是否存在
-f file 测试文件是否为普通文件
-d file 测试指定路径是否为目录
-r file 测试文件对当前用户是否可读
-w file 测试文件对当前用户是否可写
-x file 测试文件对当前用户是都可执行
-z 是否为空 为空则为真
-a 是否不空
bash shell中if的结构语法大体为三类
1
if [ 条件表达式 ];then
命令
fi
2
if [ 条件表达式 ] ; then
命令
else
命令
fi
3
if [ 条件表达式 ]; then
命令
elif [ 条件表达式 ]; then
命令
else
命令
fi
一个例子
我们这里有一个文本我们要判断这个文本1234里面是否存在有字母R
#!/bin/bash
#
grep "p" ./1234.txt &> 123.txt
a=$?
echo "$a"
if [ $a -eq 0 ]; then
echo "存在字母R "
else
echo "不纯在字母R"
fi