一、for循环

for  定义变量
do  使用变量,执行动作
done    结束标志格式1:
#!/bin/bash
for WESTOS in `seq 2 2 10`
doecho $WESTOS
done格式2:
for WESTOS in 1 2 3
doecho $WESTOS
done格式3:
for WESTOS in {10..1}
doecho $WESTOS
done格式4:
for ((WESTOS=0;WESTOS<10;WESTOS++))
doecho $WESTOS
done

脚本练习:
check_host.sh
用此脚本检测10台与您当前主机直连主机是否网络通常
如果网络通常请显示主机的ip列表

#!/bin/bash
for IP in {1..10}
doping  -w 1 -c 1 172.25.254.$IP &> /dev/null &&{echo 172.25.254.$IP
}
done

验证:

二、 while

while true   #条件为真
do      #条件成立所作循环动作done3.until
until false ##条件为假
do#条件不成立所作循环动作done

三、until

until false  ##条件为假
do#条件不成立所作循环动作done

四、if

if
then
elif
then
...
else
fi

脚本练习:
check_file.sh
please input filename: file
file is not exist
file is file
file is direcory
此脚本会一直询问直到用户输入exit为止

#!/bin/bash
while true
doread -p "Please input file: " FILE
if [ "$FILE" = "exit" ]
thenexit
elif [ ! -e "$FILE" ]
thenecho $FILE is not exist
elif [ -L "$FILE" ]
thenecho $FILE is link file
elif [ -f "$FILE" ]
thenecho $FILE is common file
elif [ -d "$FILE" ]
thenecho $FILE is direcory
fi
done

五、case

case $1 inword1|WORD1)action1;;word2|WORD2)action2;;*)action3
esac

脚本练习
system_watch.sh disk memory upload (每秒显示)
disk 监控磁盘使用情况
memory 监控内存使用情况
upload 监控启动负载

#!/bin/bash
case $1 indisk|DISK)
watch -tn 1 df -H;;memory|MEMORY)
watch -tn 1 free -m;;upload|UPLOAD)
watch -tn 1 uptime;;*);;echo "please input"
esac

六、 expect

问题脚本
#!/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? " OKecho $NAME is $AGE\'s old study $OBJ feel $OK应答脚本
#!/usr/bin/expect
set timeout 1   ##设置反应时间
set NAME [ lindex $argv 0 ]    ###执行命令的第一串字符(空格为分割符号)
set AGE  [ lindex $argv 1 ]
set OBJ  [ lindex $argv 2 ]
set FEEL [ lindex $argv 3 ]
spawn /mnt/ask.sh
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

验证:

脚本练习
auto_ssh 172.25.254.1 westos
可以自动连接目标主机当目标主机网络不通时报错

#!/bin/bash
AUTO_SSH()
{
/usr/bin/expect <<EOF
spawn ssh root@$1
expect {
"yes/no" { send "yes\r";exp_continue }
"password:" { send "westos\r" }
}
expect eof
EOF
}
ping -c1 -w1 172.25.254.1 &> /dev/null && {AUTO_SSH 172.25.254.1
}||{
echo connect to host 172.25.254.1 port 22: No route to host
}

七、break,continue,exit

contiue    终止当此次前循环提前进入下个循环
break 终止当前所在语句所有动作进行语句外的其他动作
exit 脚本退出

shell的执行流控制相关推荐

  1. shell中的执行流控制

    shell中的执行流控制 1 for语句 1.1 作用及语句结构 1.2 for语句的基本格式 2 条件语句 2.1 while...do 2.2 until...do 2.3 if语句 2.4 ca ...

  2. 执行远程linux命令,linux shell 远程执行命令

    经常要部署多台服务器上面的应用,如果一个个机器的登录太麻烦. 所有就想到编写一个脚本来部署不同的服务器 前提条件: 配置ssh免登陆 如果不会的请参加我的另外一篇文章 http://blog.csdn ...

  3. shell中执行脚本并显示到终端和保存到日志文件中

    我们知道,在shell中执行脚本会返回一定信息到终端屏幕上 ,但是有一些特殊情况,如以下情况: 1)显示到终端中 echo  "abck" 以上在手动执行脚本中是可以的,如果是编写 ...

  4. apache php 执行shell,PHP执行普通shell命令流程解析

    这里演示一些普通的shell命令 php执行shell命令,可以使用下面几个函数: string system ( string $command [, int &$return_var ] ...

  5. shell脚本执行及配置文件

    linux之shell脚本执行及配置文件 bash脚本执行方法: 1 解释器直接运行/usr/bin/bash bash FOO.sh2 使用路径运行脚本(需要有x权限)chmod +x FOO.sh ...

  6. runtime无法执行grep_让你的 Shell 命令执行可视化和告警

    Sampler是一个用于shell命令执行,可视化和告警的工具.其配置使用的是一个简单的YAML文件. 1.为什么我需要它? 你可以直接从终端对任意动态进程进行采样 – 观察数据库中的更改,监控MQ动 ...

  7. shell shock 执行漏洞分析

    该漏洞相关报道: http://www.freebuf.com/news/44805.html http://www.csoonline.com/article/2687265/application ...

  8. linux远程执行shell命令行,linux shell 远程执行命令--ftp

    linux shell 远程执行命令--ftp 2018-12-07 ftp有很多命令,熟悉这些命令你能大大的提高工作效率: FTP命令行格式为: ftp -v -d -i -n -g [主机名] , ...

  9. 『SHELL』--SHELL脚本执行方式(转)

    Shell脚本的执行方式: 注明:wd代表"脚本保存的目录" 1.fork 语法:/wd/shell.sh fork是最普通的, 就是直接在脚本里面用/wd/shell.sh来调用 ...

最新文章

  1. HDU1053 Entropy 哈夫曼树
  2. 吴恩达机器学习笔记 —— 7 Logistic回归
  3. SQLiteOpenHelper的实现
  4. MySQL使用sql备份文件恢复数据库
  5. ups计算软件_ups不间断电源系统分类及作用
  6. linux系统级别及特殊字符的意义
  7. C语言中static关键字详解
  8. 基于Rainbond开发Python云原生应用
  9. Node.js 线程你理解的可能是错的 1
  10. pandas 字符串切片后保存_Pandas时间序列基础详解(转换,索引,切片)
  11. matlab 无线仿真教学视频教程,视频教程 | MATLAB 及机电系统仿真
  12. Android趣味课程:超简单猜数游戏
  13. 【无人机学习】惯性导航系统简介
  14. 百度网盘打开显示读写权限不足
  15. XTDRONE:ego_planner三维运动规划
  16. 模拟电子技术之运算放大器
  17. 【降维打击】解决加密视频录屏问题
  18. Steam游戏信息爬取-热销榜价格好评率折扣评论
  19. 国际风筝节开幕 深圳大梅沙上演嫦娥奔月(图)
  20. WPF实现照片墙拼图展示特效

热门文章

  1. dederss.php美国与,Dede经验:全站rss/连载和分类首页模板替换
  2. Pandas与openpyxl库的 完美 融合!
  3. 一次打包,无限复用!教你用 PyCharm 搭建一劳永逸的开发环境
  4. 实现自己的轻量级http调用工具
  5. 超级棒的170+款web前端开发工具汇总,千万要收藏好!
  6. 从 6 万用户评论中,选出这 23 门全世界最好的 CS 免费课
  7. 我在 GitHub 上看到了一个丧心病狂的开源项目!
  8. boot lvm 分区_怎样使用kickstart创建逻辑卷管理(LVM)分区
  9. python scipy模块文档_scipy模块stats文档
  10. 浏览器内存不足导致页面崩溃_深度精读:浏览器渲染原理 [8000字图文并茂]