shell中的函数语句 && 脚本中的运算

6 篇文章 0 订阅

1.函数语句

  • 函数:通俗的表示就是一串字符等于一个动作
  • 函数中的参数只在函数中生效是独立的
  • 函数的作用:(1)缩减脚本长度(2)使脚本循环起来

1.1 for 循环函数

for 中的变量只在for中生效
1.1.1基本格式

for
do
done 

1.1.2应用方式:
(1)排列方式

for X in 1 3 5
do 
done

for X in china xian 925
do
done

(2)大括号连续方式

for X in {1..10}
do
done

for X in {a..b}
do
done

for X in {10..1}
do
done

在这里插入图片描述

(3)seq 连续引用批量
优点:可以控制度长

for X in `seq 1 2 10`  #表示1-10之间的数字每隔两个单位赋给X一次
do
done

在这里插入图片描述

1.2 while 条件函数

只要满足条件就做;一直满足一直做

while true
do
done

在这里插入图片描述

1.3 until 函数

until
do
done

1.4 if 语句

(1)基本结构

if
then
fi

(2)多层判断

if
then
elif
then
else
fi

在这里插入图片描述

1.5 类比case 点名机制

case 
	word1)
	action1
	;;
	word2)
	action2
	;;
	...
	*)
	last action
esac

在这里插入图片描述

1.6 自动应答器expect

  • expect是用于编写与交互程序互动的程序,根据脚本与其他交互程序交谈,根据expect脚本知道可以从程序中期望什么,以及正确的响应什么;此外用户可以在需要时进行控制和直接交互。

使用格式

vim xxx.exp
#!/usr/bin/expect
set XX  [ lindex $argv 0 ] #设定变量xx,将命令脚本后的第一个值传递给XX变量
set YY  [ lindex $argv 1 ]  #设定变量YY,将命令脚本后的第2个值传递给YY
...
spawn [.sh脚本文件或者在脚本中执行的命令] #spawn是expect中的监控程序,其运行后会监控命令提出的交互问题
expect{
  "yes/no"##程序期望    {send "yes\r";exp_continue} ##发送期望回答 \r表示回车 exp_continue表示继续回答下面的问题
}
interact ##停留在交互模式  | expect eof 结束交互程序

当自动应答器与shell脚本组合时,其书写不能有空格
在这里插入图片描述

1.7 脚本中的语句控制

exit n脚本退出,退出值为n
break退出当前循环
continue提前结束循环内部的命令,但不终止循环

1.8 脚本执行输出颜色控制

在这里插入图片描述
在这里插入图片描述

2.shell中的运算方式及运算符号

运算符号

运算符号意义
+,-加法,减法
*,/,%乘,除,取余
**幂运算
++,–自增,自减
<,<=,>,>=比较符号
=,+=,-=,*=,/=,%=赋值运算

运算操作:

运算操作与运算命令含义
(())整数运算
let与(())类似
expr整型运算,功能相对较多
bclinux下的计算器,适合整数及小数运算
$[]整型转换用于整数运算
((a=1+1))
  echo $a

在这里插入图片描述

a=$[1+1]
  echo $a

在这里插入图片描述

 let a=2+2
  echo $a

在这里插入图片描述
echo expr 1 + 1
需要注意的是:expr 数字运算符中间要隔空格,不然无效
在这里插入图片描述

bc <<EOF
> 7.3+8.7
> EOF

在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值