博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
shell高级视频答学生while循环问题
阅读量:6184 次
发布时间:2019-06-21

本文共 798 字,大约阅读时间需要 2 分钟。

视频讨论回复只能200字,因此这里回答这位学生了。

首先很感谢你学习老男孩培训的高级实战shell视频!
我们先要理解while循环的意义,使用while循环的目的就是多次循环!
while循环是根据while关键字后面指定的条件决定是否退出的循环的。
如果你希望执行一次命令就退出,那么无需用while循环,使用while就表示你需要多次循环,好了,我猜测下,你的问题是希望true的条件下,如何退出循环吧?
如果是的话,那么大概有如下几个方法。
1、while后的条件不是为true永远为真,而是指定一个条件,那么条件不满足就退出了。
例子如下:

i=0while ((i<10))doecho $i((i++))sleep 1done

提示:

1)上述脚本执行10次循环,,即10秒后i就不会小于10了,因此循环自动退出。
2)上述脚本你可以直接命令行拷贝执行看效果。

2、还可以利用第一部分SHELL视频里的特殊变量$$来记录脚本进程的ID到固定文件里,希望退出时就读取文件里的脚本进程ID kill杀掉这个ID即可。例子如下:

[root@C58 ~]# cat w.sh#!/bin/shi=0echo "$$" >/var/run/shell.pidwhile truedoecho $i((i++))sleep 1[ $i -eq 3 ] && kill `cat /var/run/shell.pid`done[root@C58 ~]# sh w.sh012Terminated

提示:这里设置变量等于3就杀掉脚本进程。

3、其他方法
  可以手动查找PID kill PIDNO.
  或者查找进程名  pkill PROCESSNAME
  当然还有killall等命令可以使用。

希望解答的是你需要的!   

         ---- 老男孩老师  10:20 2013/9/12
另,有问题可以到答疑区发问。

 

转载地址:http://nmida.baihongyu.com/

你可能感兴趣的文章
字符串处理的练习~
查看>>
一名网工对Linux运维的一次经历
查看>>
jdbc中如何使用classloader
查看>>
在Struts2中方便获得Spring中的Bean方法
查看>>
「ThinkPHP开发者周刊」第2期
查看>>
思达报表工具Style Report基础教程—交叉表
查看>>
H3C笔试题目
查看>>
成为一名优秀的Web前端开发者
查看>>
mybatis 学习笔记
查看>>
Spring Boot AOP
查看>>
Mysql导出sql语句的方法及可能遇到的mysqldump: command not found
查看>>
网站建设PHP mysql 事务处理实例
查看>>
家人重病什么心情都没了
查看>>
贪心算法
查看>>
MetaQ FAQ
查看>>
IOS touch事件~~
查看>>
spring mvc 装配拦截器
查看>>
macOS安装使用OpenConnect客户端
查看>>
如何解决源码包安装时的依赖性问题
查看>>
Raspbian常用命令
查看>>