Shell编程学习之运算符的运用

  • Shell运算符的作用:
  • 批量执行命令;
  • Shell运算符特点:
  • 不进行浮点类型的运算;
  • Shell运算符的分类:
#第一种:
(())
#第二种:
$[]
#第三种:
let
#第四种:
expr
  • Shell运算符的效率:

  • 上述第一种至第四种的运算效率依次递减;

  • Shell运算符expr的特殊用法:

  • 可以对字符串进行处理;

  • Shell运算符’(())':

  • 格式:

#方式1
((表达式))
#方式2
((表达式1...表达式n))
  • 使用方式2时,每个表达式都会参与运算,而最后一个表达式的结果,就是运算符(())处理的结果;
  • 特点:
  • 1.运算符内部前后的空格无影响
  • 2.运算符内部引用变量值时,'$'无影响结果
  • 3.引用表达式的结果时,运算符外部加'$';
  • 4.可以参与复杂的运算;
  • 测试代码:
#!/bin/bash


X=100
Y=33

KEY1=$(($X+$Y))
KEY2=$(($X - $Y))
KEY3=$((X*Y))
KEY4=$((X / Y))

echo $KEY1
echo $KEY2
echo $KEY3
echo $KEY4

echo $((X%Y))

echo "---------------"

echo $((X++))
echo $((++X))

echo $((Y--))
echo $((--Y))
  • 运行结果:
133
67
3300
3
1
---------------
100
102
33
31
  • Shell运算符’$[]':
  • 格式:
#方式1
$[表达式]
#方式2
$[表达式1...表达式n]
  • 使用方式2时,每个表达式都会参与运算,而最后一个表达式的结果,就是运算符$[]处理的结果;
  • 特点:
  • 1.运算符内部前后的空格无影响
  • 2.运算符内部引用变量值时,'$'无影响结果
  • 3.处理的结果必须赋值给变量OR使用输出命令'echo'输出到终端,不然的话,会报错;
  • 4.不可以参与复杂的运算,比如Shell编程中的for循环
  • 测试代码:
#!/bin/bash


X=100
Y=33

KEY1=$[$X+$Y]
KEY2=$[$X - $Y]
KEY3=$[X*Y]
KEY4=$[X / Y]

echo $KEY1
echo $KEY2
echo $KEY3
echo $KEY4

echo $[X%Y]

echo "---------------"

echo $[X++]
echo $[++X]

echo $[Y--]
echo $[--Y]

X=$[X-1]
echo $X
  • 运行结果:
133
67
3300
3
1
---------------
100
102
33
31
101
  • Shell运算符’let’:
  • 格式:
#方式1
let 表达式
#方式2
let 表达式1 表达式2 表达式3 ... 表达式n
  • 特点:
  • 1.表达式必须是完整的算术的表达式,即等号两边必须要有变量
  • 2.使用方式2时,会处理所有的表达式;
  • 3.引用变量值时,'$'无影响结果
  • 测试代码:
#!/bin/bash


X=100
Y=33

let KEY=X+Y KEY=KEY-X KEY=KEY*X KEY=KEY/Y KEY=KEY%Y

echo $KEY

  • 运行结果:
1
  • Shell运算符’expr’:
  • 格式:
expr 表达式
  • 特点:
  • 1.运算符前后的空格必须添加
  • 2.运算符内部引用变量值时,'$'必须添加
  • 3.处理的结果会自动输出到终端;
  • 4.不可以参与复杂的运算,比如Shell编程中的for循环
  • 5.接收处理的结果,可以使用命令置换符$() OR ``
  • 6.乘运算等,需要添加转义字符\*;
  • 测试代码:
#!/bin/bash


X=100
Y=33

KEY1=$(expr $X + $Y)
echo $KEY1


expr $X - $Y

expr $X \* $Y

expr $X / $Y


KEY2=`expr $X % $Y`
echo $KEY2

  • 运行结果:
133
67
3300
3
1

你可能感兴趣的:(linux,shell,脚本,嵌入式硬件,服务器,笔记)