shell的变量以及常见符号

shell的变量以及常见符号

常见变量

不同于其它语言需要先声明变量,shell的变量直接使用

eg:      a=15     

 调用变量的话 $a 或者 ${a}

$? #判断上一条命令执行的是否成功 0成功 返回其他 错误 

写一个脚本做演示

执行

 

$0 #返回脚本的文件名称  

$1-$9 #返回对应的参数值   

$* #返回所有的参数值是什么 

$# #返回参数的个数和 

 

 

 

常见的几个符号

> #会覆盖原有的内容

^c是结束符号

>> #不会覆盖原有的内容

; #执行多条命令

不加;报错

   

| #管道符

&& #前面的命令执行成功,后面的才可以执行

|| #前面的命令执行失败,后面的才可以执行  

"" #会输出变量值

'' #输出本身

  

 

`` #输出命令结果 eg:a=`date`;echo $a   (反撇号)

2>/dev/null #错误输出到无底洞(垃圾桶)
1>/dev/null #正确输出到无底洞

 

秒变计算器的运算符

整数:

加:(加号两边一定要加空格 否则是表达式)

expr 12 + 6                     expr $a + $b

echo $[12 + 6]                 echo $[a + b]

echo $((12 + 6))             echo $((a + b))

减:

expr 12 - 6                    expr $a - $b

echo $[12 - 6]               echo $[a - b]

echo $((12 - 6))            echo $((a - b))

乘:

expr 12 * 6                   expr $a * $b

echo $[12 * 6]               echo $[a * b]

echo $((12 * 6))            echo $((a * b))

除:

expr 12 / 6                   expr $a / $b

echo $((12 / 6))           echo $((a / b))

echo $[12 / 6]              echo $[a / b]

求余:

expr 12 % 6                  expr $a % $b

echo $((12 % 6))          echo $((a % b))

echo $[12 % 6]              echo $[a % b]

小数:

上述方式对小数无效

内置的  ‘’bc计算器”  计算

法一:

法二:

保留小数:

保留多少位小数可以通过scale
但是scale只对除法,取余数,乘幂 有效,对加减没有效(用/1变成除法)。

echo "scale=2;(0.2+0.3)/1" | bc #计算出0.2+0.3的和并保留俩位小数(整数位为0,此时bc计算器会省略掉个位数的0)
echo "scale=2;(1.2+1.3)/1" | bc #计算出1.2+1.3的和并保留俩位小数

常见的条件判断

语法:

[ 判断表达式 ]

文件(夹)或者路径: 
  -e 目标是否存在(exist)
  -d 是否为路径(directory)
  -f 是否为文件(file)

  [ -e foer.sh ] || touch foer.sh   #判断当前目录下是否有foer.sh这个文件,假如没有就创建出foer.sh文件

权限:
 -r 是否有读取权限(read)
 -w 是否有写入权限(write)
 -x 是否有执行权限(excute)

  [ -x 123.txt ] && echo '有执行权限'   

整数值(int型(必须 )):
-eq 等于(equal)
-ne 不等于(not equal)
-gt 大于(greater than)
-lt 小于(lesser than)
-ge 大于或者等于(greater or equal)
-le 小于或者等于(lesser or equal)

注意:不能用><=

小数(浮点型):

利用bc计算器  特性

[ `echo '1.2 < 1.3' | bc` -eq 1 ] && echo '小于'

 `echo '1.2 < 1.3' | bc   返回1   

 `echo '1.2 < 1.3' | bc` -eq 1     等于1 成立  

 && echo '小于'   返回小于

  

字符串:
= 相等
!= 不相等

[ 'kkkkk' != 'kkkk' ] && echo '不等于'  

shell脚本实例

实例1:

 

放入crt跑

追加符号

 

粘贴

执行并传参

运行错误!

 并未打印出    12不等于13

  因为没有用双引号  

  使用vi  pandun.sh 修改

   

 实例2: 

  vi pandun.sh

  

原文地址:https://www.cnblogs.com/hmm1995/p/10418361.html