Linux Gvim shell 运算符

shell运算符:算数,关系,布尔,字符串,文件测试
原生bash不支持简单的数学运算,可通过awk expr实现,expr最常用
expr是一款表达式计算工具,使用它能完成表达式的求值操作

示例如下:

1 val=` expr 2 + 2 `
2 echo " Total value : ${val} "

注意
1.表达式和运算符之间要有空格
2.完整表达式要被``包含

算数运算符

示例如下: +     -     *     /     %     ==     !=

 1 a=10
 2 b=20
 3
 4 val=` expr ${a} + ${b} `
 5 echo " a + b : ${val} "
 6
 7 val=` expr ${a} - ${b} `
 8 echo " a - b : ${val} "
 9
10 val=` expr ${a} \* ${b} `    #乘号前必须加\才能实现惩罚运算#
11 echo " a * b : ${val}"
12
13 val=` expr ${b} / ${a} `
14 echo " b / a : ${val} "
15
16 val=` expr ${b} % ${a} `
17 echo " b % a : ${val} "
18
19 if [ ${a} == ${b} ]        #条件语句写法,后续加入.此条件返回的是true or false,空格不能少#
20 then
21     echo " a is equal to b "
22 fi
23
24 if [ ${a} != ${b} ]
25 then
26     echo " a is not equal to  b"
27 fi

关系运算符

关系运算符:只支持数字,不支持字符串,除非字符串的值是数字
关系运算符列表
 1.     -eq      检测两个数是否相等,返回true          [ ${a} -eq ${b} ]       equal
 2.     -ne      检测两个数是否相等,返回false            [ ${a} -ne ${b} ]      not euqal
 3.     -gt       检测左边是否大于右边,返回true            [ ${a} -gt ${b} ]       greater than
 4.     -lt        检测左边是否小于右边,返回false           [ ${a} -lt ${b} ]         less than
 5.     -ge        检测左边是否大于等于右边,返回true      [ ${a} -ge ${b} ]        greater or equal
 6.     -le       检测左边是否小于等于右边,返回false    [ ${a} -le ${b} ]        less or equal

示例如下:

1 a=10
2 b=20
3 if [ ${a} -eq ${b} ]
4 then
5     echo " a is equal to b "
6 else
7     echo " a is not equal to b "
8 fi

布尔运算符

布尔运算符列表
1.    !    非    [ !false ]
2.    -o    或    [ ${a} -lt 20 -o ${b} -gt 100]    a<20或b>100 返回true
3.    -a    与    [ ${a} -lt 20 -a ${b} -gt 100]    a<20并且b>100 返回true

示例如下:

1 a=10
2 b=110
3
4 if [ ${a} -lt 20 -a ${b} -lt 100 ]  #a<20并且b<100#
5 then
6     echo " a<20或b<100成立!"
7 else
8     echo " 不成立! "
9 fi

字符串运算符

字符串运算符列表
1.      =       检测两个字符串是否相等                            [ ${a} = ${b} ]
2.      !=      检测两个字符串是否相等                            [ ${a} = ${b} ]
3.      -z      检测字符串长度是否为0,返回true                    [ -z ${a} ]
4.      -n      检测字符串长度是否为0,返回false              [ -n ${a} ]
5.      str      检测字符串是否为空,不为空返回true       [ ${a} ]

示例如下:

 1 a="abc"
 2 b="abc"
 3
 4 if [ ${a} = ${b} ]
 5 then
 6     echo " ${a} = ${b} : a is equal to b "
 7 else
 8     echo " ${a} = ${b} : a is not equal to b "
 9 fi
10
11 if [ ${a} != ${b} ]
12 then
13     echo "  ${a} != ${b} : a is not equal to b "
14 else
15     echo "  ${a} != ${b} : a is equal to b "
16 fi
17
18 if [ -z ${a} ]
19 then
20     echo " -z ${a} : String length is zero "
21 else
22     echo " -z ${a} : String length is not zero "
23 fi
24
25 if [ -n ${b} ]
26 then
27     echo " -n ${b} : String length is not zero "
28 else
29     echo " -n ${b} : String length is zero"
30 fi

时间: 2024-10-26 02:51:17

Linux Gvim shell 运算符的相关文章

Linux Gvim shell 输入输出重定向

#输入输出重定向:Unix默认从stdin获取输入,stdout输出,输入设备是键盘,输出设备是终端#输出重定向:明朗的输出不仅可以是显示器,还可以转移到文件,这被叫做输出重定向#输出重定向会覆盖文件内容#输出重定向语法:    command > file 1 echo who > users #在当前目录创建一个users文件,并写入获取的当前用户名# #输入重定向语法:    command < file #重定向深入讲解#一般情况Unix/Linux命令运行时都会打开三个文件#标

Linux Gvim shell 替换:变量替换,命令替换,转义字符

替换:如果表达式中含有特殊字符,shell会进行替换.例如在双引号中使用变量就是一种替换.转义字符也是一种替换 #!/bin/bash a=10 echo -e "Value of a is ${a} \n" #-e表示对转义字符替换,不加的话输出如下# echo "Value of a is ${a} \n" 转义字符替换 下列转义字符可用于echo 1.       \\     反斜杠        2.    \a     警报,响铃 ?3.   \b  

Linux Gvim shell echo命令

#echo命令:shell的内部指令,用于在屏幕上打印指定的字符串 1 a=10 2 echo \" this is a test \" #下列第二个执行效率高,第一个则是充分利用了双引号,但不是效率最高的写法 1 echo " 接收到 , ${a} " 2 echo ' 接收到' ,${a} #显示不换行.以下在同一行输出 ok! this is a test 1 echo -e " ok!\c " 2 echo " this is

Linux Gvim shell while循环

#while循环:用于不断执行一系列命令,也用于从输入文件中读取数据;命令通常为测试条件#格式如下:#while expression#do#    Statement to be executed if expression is true#done#命令执行完毕,控制返回循环顶部,从头开始执行至测试条件为假#例:如果COUNTER小于5,那么返回true.COUNTER从0开始,每次循环处理时,COUNTER加1,运行脚本,返回数字1-5,end 1 COUNTER=0 2 while [

Linux Gvim shell printf命令

#printf命令,格式化输出语句#用于格式化输出,是echo增强版,是C语言printf库函数的一个有限的变形,语法略有不同#是由POSIX标准所定义,移植性比echo好#printf不会像echo自动换行,所以要加\n才可以换行,如下: 1 printf "this is a test \n" 2 printf "OK? \n" #语法:printf format-string#格式控制字符串# [arguments#参数列表#]  #与C语言printf函数不

Linux Gvim shell 变量

#!/bin/bash name=”Matto” #变量名和等号之间不能有空格# name=”Blog4Matto” #重定义name变量# readonly name #设置name为只读变量# unset name #删除变量,不能删除只读变量# ${name} #使用变量,加大括号是为了识别变量边界# 变量类型 1.局部变量:在脚本或命令中定义,仅在当前shell实例中有效 2.环境变量:所有程序,包括shell启动的程序都能访问环境变量,有些程序需要环境变量依赖保证其正常运   行,必要

Linux Gvim shell 字符串

#字符串:与数字一样是最常用的类型,其他也没什么好用了.#字符串可以使用单引号,双引号,不用引号.#单引号字符串限制:#    1.任何字符原样输出,单引号中的变量无效#    2.单引号字符串中不能出现单引号,使用转义字符也不行#    str='this is a string'#双引号优点:#    1.可以有变量#    2.可以出现转义字符 1 your_name='Matto' 2 str=" Hello, I know you are \" ${your_name} \&

Linux Gvim shell for循环

#for循环#格式#for 变量 in 列表#do#    command1#    command2#    ...#done#列表是一组值(数字,字符串等)组成的序列,每个值通过空格分隔.每循环一次,就将列表的下一个值赋给变量#in 列表是可选的,如果不用它,for循环使用命令行的位置参数,如:顺序输出当前列表的数字 1 for loop in 1 2 3 4 5 2 do 3 echo " The value is : ${loop} " 4 done #顺序输出字符串中的字符,

Linux Gvim shell 函数

#函数:必须先定义后使用#格式:#function_name () {#    list of commands#    [ return value ]    #可以显示增加return语句,如果不加,会将最后一条命令运行结果作为返回#                #返回值只能是整数,一般用来函数执行成功与否,0为成功,如果return其他#                #数据,会提示 numeric argument required#                #如一定要返回字符串