1.for
for循环结构:
for 定义变量
do 使用变量,执行动作
done 结束标志
格式1:
#!/bin/bash
for WESTOS in `seq 2 2 10`
do
echo $WESTOS
done
格式2:
for WESTOS in 1 2 3
do
echo $WESTOS
done
格式3:
for WESTOS in {10..1}
do
echo $WESTOS
done
格式4:
for ((WESTOS=0;WESTOS<10;WESTOS++))
do
echo $WESTOS
done
双括号的作用:
2.while
while ture 条件为真
do 条件成立所做循环动作
done
3.until
until false 条件为假
do 条件不成立所做循环动作
done
4.if
if
then
elif
then
...
else
fi
5.case
case $1 in
word1|WORD1)
action1
;;
word2|WORD2)
action2
;;
*)
action3
esac
6.expect
需要安装expect
dnf install expect -y
问题脚本
#!/bin/bash
read -p "what's your name:" NAME
read -p "How old are you: " AGE
read -p "Which objective: " OBJ
read -p "Are you ok? " OK
echo $NAME is $AGE\'s old study $OBJ feel $OK
应答脚本
#!/usr/bin/expect
set timeout 1 #等待1s,否则会卡在问题搜索中
set NAME [ lindex $argv 0 ]
set AGE [ lindex $argv 1 ]
set OBJ [ lindex $argv 2 ]
set FEEL [ lindex $argv 3 ]
spawn /mnt/ask.sh #spwan监控
expect {
"name" { send "$NAME\r";exp_continue }
"old" { send "$AGE\r";exp_continue }
"objective" { send "$OBJ\r";exp_continue }
"ok" { send "$FEEL\r" }
}
expect eof #运行后推出环境
#interact #运行后保留环境
7.break,continue,exit
7.1 contiue
contiue 终止当前循环提前进入下个循环
7.2 break
break 终止当前所在语句所有动作进行语句外的其他动作
7.3 exit
exit 脚本退出