算术比较判断小结

小技巧:

if condition; then commands; fi

if condition; then commands;elif condition;then commands;else commands fi

嵌套过多会影响阅读,可以使用逻辑运算符变简单直接:

[ condition ] && commands;

[ condition ] || commands;

注:条件一般放在封闭的括号中,且在 “[” 和 “]"后和前必须有空格,不然会报错。

算术比较:

[ $var -eq 0 ] 等于0 返回真

[ $var -ne 0 ] 不等于0返回真

-gt 大于 -lt 小于 -ge大于等于 -le 小于等于

多条件组合:

[ $var1 -ne 0 -a $var2 lt $var1 ] -a表示逻辑与

[ $var1 -ne 0 -o $var2 lt $var1 ] -o表示逻辑或

字符串比较:

注:字符串比较最好采用双中括号,不然可能报错;

       ”=“ 前后各有一个空格,如果不加则变成了赋值关系!!!

[[ $str1 = $str2 ]] 两字符串相等时返回真,即二者文本相同

[[ $str1 == $str2 ]] 作用同上

!= 不同返回真 ’>'和'<'不赘述

[[ -z $str1 ]] 如果字符串是空串,返回真

[[ -n $str1 ]] 如果字符串不是空串,返回真

文件比较:

[ -f $file ] 文件路径或者文件名则返回真

[ -x $file ] 文件可执行则返回真

[ -d $file ] 目录为真返回真

[ -e $file ] 文件存在返回真

[ -c $file ]文件是字符设备文件的路径返回真

[ -b $file ]文件是块设备文件的路径返回真

[ -w $file ]文件可写返回真

[ -r $file ]文件可读返回真

[ -L $file ]文件是符号链接返回真

例:

#!/bin/bash
file="/etc/passwd"
if [ -e $file ];
then echo File Exists;
else
echo $file not exists
fi

初学的同胞们可以自己写一下, 会发现各种问题,比如赋值写成相等。。

最后一种: test

test 的使用可以减少中括号数量

直接上代码:

if [ $var -eq 0 ] ;

then echo true;

fi

可以被替换为:

if test $var -eq 0 ; 。。。

路途遥远,要有耐心

发布了44 篇原创文章 · 获赞 14 · 访问量 9万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章