标签:字符串 inux tmp cat mon sel 算术 大于等于 bing
1、整数比较:
-eq 等于,如:if [ "$a" -eq "$b" ] 或 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" ]
== 等于,如:if if (("$a" == "$b"))
< 小于(需要双括号),如:(("$a" < "$b"))
<= 小于等于(需要双括号),如:(("$a" <= "$b"))
> 大于(需要双括号),如:(("$a" > "$b"))
>= 大于等于(需要双括号),如:(("$a" >= "$b"))
特别说明的是(())字符和括号之间不需要留空格,但[[ ]],[]要求比较严格,需要留空格。
2、字符串比较,上面的-eq,-nq等公式只适用于数字比较,不适用于字符比较
= 等于,如:if [ "$a" = "$b" ]
== 等于,如:if [ "$a" == "$b" ],与=等价
[[ $a == z* ]] # 如果$a以"z"开头(模式匹配)那么将为true
[[ $a == "z*" ]] # 如果$a等于z*(字符匹配),那么结果为true
[ $a == z* ] # File globbing 和word splitting将会发生
[ "$a" == "z*" ] # 如果$a等于z*(字符匹配),那么结果为true
3、括号之间的区别:
[[ ]],[]对括号内变量要求严格且且敏感,但(())则相对宽松一些
[plain] view plain copy
1、if [[ $a == $b ]] 和 if [[ $a == $b ]] 等价
但if [[ $a == $b ]] 和if [[ a == b ]] 不等价
2、if (($a == $b)) 和 if (($a = $b))等价
if (($a == $b)) 和 if ((a == b)) 等价
4、多条件判断:
&&和||适用于[[ ]]和(),-a和-o适用于[]中
举例如下:
if ((i == 1)) 和 if [ "$i" == 1 ]等价
if [[ "$i" = 1 && "$j" = 2 ]] 和 if ((i = 1)) || ((j = 2))
5、其它说明:
!= 不等于,如:if [ "$a" != "$b" ]
这个操作符将在[[]]结构中使用模式匹配.
< 小于,在ASCII字母顺序下.如:
if [[ "$a" < "$b" ]]
if [ "$a" \< "$b" ]
注意:在[]结构中"<"需要被转义.
> 大于,在ASCII字母顺序下.如:
if [[ "$a" > "$b" ]]
if [ "$a" \> "$b" ]
算术运算的条件判断 [] [[]]: -eq -ne -lt -le -gt -ge(( )):><>=<== [root@monitor ~]# if (( 2 == 3));then echo ‘123‘; fi
[root@monitor ~]# if (( 2 >= 3));then echo ‘123‘; fi
[root@monitor ~]# if (( 2 <= 3));then echo ‘123‘; fi
123
[root@monitor ~]# if (( 2 < 3));then echo ‘123‘; fi
123
[root@monitor ~]# if (( 2 > 3));then echo ‘123‘; fi 字符串的条件判断 -z -n = == != < > 文件属性的条件判断 -f -d -c -w -L -x -e -b -r
#!/bin/bash
if [ -e demo.sh ];then
echo "文件存在"
fi
fpath="/etc/passwd"
if [ -e $fpath ];then
echo file exists;
else
echo file no exists;
fi
[ -e "/etc/hosts" ] || (echo ‘/etc/hosts not exist";exit 1)
if [ "$?" -eq 1 ];then
exit
fi
echo "/etc/hosts 文件存在"
declare -i a
a=20
if [ $a -eq 20 ];then
echo "var a 20"
fi
if [ $a -gt 10 ];then
echo ‘var >10‘;
fi
if [ "$LOGNAME" != "ROOT" ];then
echo "root "
fi
if [ "Bill" >"Apple" ];then
echo " BILL >APPLE"
fi
str="Bill"
if [ -n $str];then
echo "234"
fi
#!/bin/bash
NUM1=100
NUM2=200
if (($NUM1 > $NUM2));then
echo "ok"
else
echo "ok1"
fi
#!/bin/bash
Dir=/tmp/20140909
if [ ! -d $Dir ];then
mkdir -p $Dir
echo -e "\033[32mthis $Dir exist\033[0m"
else
echo -e "\033[32mthis $Dir is exist,please exit.\033[0m"
fi
#!/bin/bash
FILES=/tmp/test.txt
if [ -f $FILES ];then
echo "ok">>$FILES
else
cat $FILES
fi
-a: 逻辑表达式 -a 逻辑表达式
-o: 逻辑表达式 -o 逻辑表达式
--------------------------------------实例-------------------------------------------------------------------------
suselinux:/# echo $[ 2+1]
3
suselinux:/# echo $((2+1))
3
suselinux:/# ((1>2))
suselinux:/# echo $?
1
suselinux:/# [ 2 -ge 1]
suselinux:/# echo $?
0
标签:字符串 inux tmp cat mon sel 算术 大于等于 bing
原文地址:https://www.cnblogs.com/kelelipeng/p/14281548.html