shell 运算符章节笔记

// 运算符 
算数运算符  
关系运算符 
布尔运算符  
字符串运算符  
文件运算符 

1、算数运算符 + - * / % = == !=  

echo `expr 1 + 1`;  
echo `expr 1 - 2`;  
echo `expr 1 / 3`;  
echo `expr 1 % 4`;  
echo `expr 1 * 5`;  // 乘号需要转义 加反斜杠


a=1. 
b=2  
echo `expr $a - $b` // -1  

if [ $a != $b ]  
then  
  echo "a不等于b"  
fi  


2、关系运算符 -eq -ge -le -ne -gt -lt 

// 关系运算符只支持数字,不支持字符串,除非字符串的值是数字


a=1  
b=2. 

if [ $a -eq $b ]  
then  
echo 'a==b'  
else  
echo 'a!=b'  
fi  

3、布尔运算符 !取反 -o 或 -a 并且

a=1  
b=2. 

if [ $a -eq 1 -a $b == 2 ]  
then. 
echo 'a==1 && b==2'  
fi. 

4、逻辑运算符 && || 外面两个中括号

a=1  
b=2  

if [[ $a -eq 1 && $b == 2 ]]  
then  
echo 'a==1 && b==2'  
fi  

5、字符串运算符 = 相等 != -z 字符串长度是否为0 -n 相反 $ 是否为空  

a='hello'  
b='hi'  

if [ $a = $b ]  
then  
echo 'a字符串和b字符串相等'  
else  
echo  
echo 'a字符串和b字符串不相等'  
fi  

if [ -z $a ]  
then  
echo ‘a字符串长度为0’  
else  
echo ‘a字符串长度不为0’  
fi  

if [ $a ]  
then  
echo ‘a字符串不为空’  
else  
echo ‘a字符串为空’  
fi  

6、文件测试运算符  

-d 是否是目录文件  
-f 普通文件  
-r 是否只读  
-w  
-x  
-s 文件是否为空. 
-e 文件或目录是否存在  

if [ -e '~/.ssh/hello.xxx']  
then   
echo 'hello文件存在'  
else  
echo 'hello文件不存在'  
fi 

  

原文地址:https://www.cnblogs.com/leyi/p/10616690.html