文章目录
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 | 整型运算,功能相对较多 |
bc | linux下的计算器,适合整数及小数运算 |
$[] | 整型转换用于整数运算 |
((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