精华内容
下载资源
问答
  • Shell语言(While死循环)

    千次阅读 2019-06-12 09:14:58
    那在shell脚本中的死循环怎么写呢? 对于熟悉C语言的猿人们来说,最简单的死循环应该这样写: while(1) { //do something } 或者你也可以用for语句和do…while语句来实现,这里就不说了! 可是怎么在shell脚本...

    原文

    在linux下编程的程序猿都知道shell脚本,就算你不怎么熟悉,也应该听过的吧!那在shell脚本中的死循环该怎么写呢?

    对于熟悉C语言的猿人们来说,最简单的死循环应该这样写:


    while(1)

    {

    //do something
    

    }


    或者你也可以用for语句和do…while语句来实现,这里就不说了!

    可是怎么在shell脚本中写死循环呢?

    对于对shell不怎么熟悉的猿人来说,相信这个问题肯定难倒过大家,反正这个问题曾经难住了我…

    上网google了查阅了一番资料后,我恍然大悟了!原来可以这么写:


    while [ “1” = “1” ]

    do

    do something

    done


    或者


    while test “1” = “1”

    do

    do something

    done


    也许,你会觉得和C语言中的有点像,果不其然!但是请注意这是脚本!

    看到这里你也许就知道了在shell中怎么写一个死循环了,可是这真的是最简单的死循环吗?

    其实不是的!最简单的死循环该这样写,(注意:我在这里称其为最简单,也许还有跟简单的!)


    while :

    do

    do something

    done


    看到这里,也许你会很纳闷儿,这是什么东西,甚至怀疑我在”迈大步子“-----”扯蛋“,其实我的步子迈的很小,绝对扯不到蛋的!

    没错,这的确是一个死循环,不信你可以试一下!注意”#“在shell中是注释这一行的意思,除了这个除外#!/bin/sh

    还有”:“在shell中表示空语句,就是什么也不做!相当于C中的”;“!

    好了,就写到这里了!

    谢谢浏览!

    展开全文
  • 循环(loop)用于解决重附代码的问题循环语句允许我们用简单的方法执行一个语句或语句组多次,下面是在大多数编程语言中的循环语句的一般形式1.循环类型1.1.循环分类1)根据循环次数分类有限循环(次数限制)无限...

    写重复代码 是可耻的行为

    -------------- 完美的分割线 --------------

    程序在一般情况下是按顺序执行的,编程语言提供了各种控制结构,允许更复杂的执行路径。

    循环(loop)用于解决重附代码的问题

    循环语句允许我们用简单的方法执行一个语句或语句组多次,下面是在大多数编程语言中的循环语句的一般形式

    1211667-20180806204241853-1391640941.png

    1.循环类型

    1.1.循环分类

    1)根据循环次数分类

    有限循环(次数限制)

    无限循环(死循环)

    2)根据语法可以分为以下类型:

    Python提供了for循环和while循环(在Python中没有do..while循环):

    循环类型描述

    在给定的判断条件为 true 时执行循环体,否则退出循环体。

    重复执行语句

    你可以在while循环体中嵌套for循环

    1.2.循环控制语句

    循环控制语句可以更改语句执行的顺序。Python支持以下循环控制语句:

    控制语句描述

    在语句块执行过程中终止循环,并且跳出整个循环

    结束本次循环,进入下次循环

    pass是空语句,是为了保持程序结构的完整性。

    注意:

    shell脚本里用break2可以跳出2层循环,但python不可以,这不是好语法,会造成语义混乱

    2.while循环

    2.1.while循环语法

    Python 编程中 while循环是指在某条件下,重复执行某段程序,以处理需要重复处理的相同任务。其基本形式为:

    while判断条件:

    执行语句……

    执行语句可以是单个语句或语句块。

    判断条件可以是任何表达式,任何非零、或非空(null)的值均为true。当判断条件假false时,循环结束。

    执行流程图如下:

    1211667-20180806210414972-342071495.png

    # 实例1:循环打印0-100

    count =0while count <= 100:print("loop",count)

    count+= 1

    print("-------end-------")

    # 实例2:打印100以内的偶数

    count =0while count <= 100:if count % 2 == 0: #除以2余数为0的数

    print("loop",count)

    count+= 1

    print("-------end-------")

    # 实例3:第50次不打印,第60-80打印对应值的平方

    count =0while count <= 100:if count == 50:pass #过

    elif count >= 60 and count <= 80:print(count*count)else:print(count)

    count+= 1

    print("-------end-------")

    2.2.死循环(无限循环)

    语法:

    whileTrue:

    执行代码...

    # 实例1:死循环

    count =0whileTrue:print("forever",count)

    count+= 1

    2.3.循环终止语句

    break 完全终止循环

    continue 终止本次循环,跳过本次循环

    exit() 任意位置退出程序

    # 实例1:break退出循环

    count =0while count <= 100:print("loop",count)if count == 5:breakcount+= 1

    print("-----out of while loop-----")

    # 实例2:玩猜年龄3次就退出了

    age = 26count=0while count < 3:

    age_guess= int(input("猜猜年龄:"))if age_guess ==age:print("猜对了!")break

    elif age_guess

    count+= 1

    # 实例3:玩猜年龄3次后问是否还要玩

    age = 26count=0while count < 3:

    age_guess= int(input("猜猜年龄:"))if age_guess ==age:print("猜对了!")break

    elif age_guess

    count+= 1

    if count == 3:

    again= input("还想玩吗[y]:")if again == 'y':

    count=0else:

    exit('byebye')

    2.4.python中while的特殊语法

    语法:

    while...else语句

    while循环正常执行完,中间没有被 break 中止,就执行else语句

    推论:没有看到else后面的语句就说明循环被中断过

    else 作用:可以让你知道你的程序中间是否被break过

    # 实例1:while...else正常执行完

    count =0while count <= 5:

    count+= 1

    print("loop",count)else:print("循环正常执行完了")print("-------end-------")

    返回结果如下:

    loop 1loop2loop3loop4loop5loop6循环正常执行完了-------end-------

    # 实例2:while...else被break打断

    count =0while count <= 5:

    count+= 1

    if count == 3:print('终止循环')break

    else:print("loop", count)else:print("循环正常执行完了")print("-------end-------")

    返回结果如下:

    loop 1loop2终止循环-------end-------

    总结经验:

    不用非要从语义理解记忆,将while...else作为一组语句,正常语法执行完上面的while循环就执行下面的else语句,while循环被break终止就不执行下面的语句

    3.for循环

    3.1.for循环语法

    Python的for循环用于遍历任何序列中的对象,如列表或字符串

    for iterating_var insequence:

    statements(s)

    流程图:

    1211667-20180806213859155-425486342.png

    3.2.for循环实例

    # 实例1:打印0到10之间的奇数

    方法1:for循环加if判断,比较复杂

    for i in range(10):if i % 2 == 1:print(i)

    方法2:步长,简单高效

    for i in range(0,10,1):print("loop:",i)

    # 实例2:打印0到10之间的偶数,隔2个打印:02468

    for i in range(0,10,2):print("loop:",i)

    # 实例3:从0打印到10之间的,隔3个打印:0369

    for i in range(0,10,3):print("loop:",i)

    # 实例4:猜数字,只能猜3次,猜对就退出,猜不对就退出

    num = 26

    for i in range(3):

    guess_num= int(input("Please input your num:"))if guess_num ==num:print("yes,you got it!")break

    elif guess_num >num:print("please guess smaller...")else:print("please guess bigger...")else:print("You have tried too many times")

    只要上面的for循环正常执行完毕,没被打断,就会执行else的语句

    如果遇到break被打断则不走else的,因为break下面的代码不执行

    遇到continue后else的代码是会执行的

    # 练习:写一个登录程序,连续输错3次用户名或密码则退出。

    _user = input("username:")

    _passwd= input("password:")for i in range(3):

    i_user= input("input username:")

    i_passwd= input("input password:")if i_user == _user and i_passwd ==_passwd:print("Welcome login %s" %_user)break

    else:print("Invalid username or passord!")

    -------------- 完毕,呵呵呵呵 ---------------

    展开全文
  • 对于熟悉C语言的猿人们来说,最简单的死循环应该这样while(1){//do something}或者你也可以用for语句和do...while语句来实现,这里就不说了!实现方法可是怎么在shell脚本中写死循环呢?这个时候同样用到while,...

    Shell实现程序造死循环的几种方法示例

    前言

    有时候脚本中需要造个死循环,或者让程序一直运行下去,到某个条件方退出循环。

    对于熟悉C语言的猿人们来说,最简单的死循环应该这样写:

    while(1)

    {

    //do something

    }

    或者你也可以用for语句和do...while语句来实现,这里就不说了!

    实现方法

    可是怎么在shell脚本中写死循环呢?这个时候同样用到while,归纳汇总了让Shell脚本一直运行下去的几种方式:

    下面是个实例:使用while :让程序一直运行下去,直到按q或者Q退出为止

    脚本输出:

    总结

    以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对我们的支持。

    时间: 2017-08-13

    for 实现: 复制代码 代码如下: #!/bin/bash set i=0 set j=0 for((i=0;i<10;)) do         let "j=j+1"         echo "-------------j is $j -------------------" done while实现: 复制代码 代码如下: #!/bin/bash set j=2 while true do         let "j=j+1"

    sh 不像 bash 和 ksh 那样可以非常方便的定义和使用数组,但是可以通过其它方式来模拟数组. [方法1]通过 set 命令和位置参数来模拟数组 # 定义数组 set 'word 1' word2 word3 # 输出数组的第一个元素 echo $1 # 输出数组的第二个元素 echo $2 # 输出数组的第三个元素 echo $3 # 输出数组的所有元素 echo $* echo $@ # 向数组中增加一个元素 set -- "$@" word4 echo $4 # 查看数组元

    交互方式修改密码 1. ssh 远程到主机: 2. 切换到root账号: [一般都是切换到root进行密码修改,如果普通用户修改自己的密码,要输入原密码,然后新密码要满足复杂度才OK]: 3. passwd username 使用passwd username 修改 username 的密码: 使用该命令会有提示,即进入了交互界面,输入密码即可. 使用脚本修改密码 很多时候我们可能需要远程执行服务器上的脚本来修改账号密码,此时就没有办法进行交互了. 此时可以使用如下两种方式修改密码: 方式1:

    本文为大家分享了两种python脚本设置系统时间的方法,供大家参考,具体内容如下 第一种方法,使用Python设置系统时间,即给系统校时 #电脑时间用了一段时间后,系统时间不准了,想更新一下 #在windows里面,更新系统时间,时常失败,而且速度很忙. #在网上拷贝的代码,发现很好用,比windows自带的实现要快. #-*- coding:utf-8 -*- import socket import struct import time import win32api TimeServer

    1.当一个脚本需要传入的参数较多时,可以使用for循环进行参数遍历 示例: #!/bin/bash number=65 #定义一个退出值 index=1 #定义一个计数器 if [ -z "$1" ];then #对用户输入的参数做判断,如果未输入参数则返回脚本的用法并退出,退出值65 echo "Usage:$0 + canshu" exit $number fi echo "listing args with \$*:" #在屏幕输入,在$*

    前言 我们大家在工作中,经常会碰到每隔多少天/小时/分钟执行一次脚本,或某个命令的情况.如果是每隔多少小时,多少分运行一次程序,在crontab中可能比较好实现一些,下面是一些示例及crontab的格式说明: 具体示例: # 下午6点到早上6点,每隔15分钟执行一次脚本 0,15,30,45 18-06 * * * /bin/bash $HOME/script.sh > /dev/null 2>&1 # 每两小时,重启一次服务 * */2 * * * /etc/init.d/apach

    最近项目的两次版本迭代中,根据业务需求的变化,需要对数据库进行更新,两次分别使用了不同的方式进行更新. 第一种:使用python的MySQLdb模块利用原生的sql语句进行更新 import MySQLdb #主机名 HOST = '127.0.0.1' #用户名 USER = "root" #密码 PASSWD = "123456" #数据库名 DB = "db_name" # 打开数据库连接 db=MySQLdb.connect(HOST,U

    用java实现循环队列的方法: 1.添加一个属性size用来记录眼下的元素个数. 目的是当head=rear的时候.通过size=0还是size=数组长度.来区分队列为空,或者队列已满. 2.数组中仅仅存储数组大小-1个元素,保证rear转一圈之后不会和head相等.也就是队列满的时候.rear+1=head,中间刚好空一个元素. 当rear=head的时候.一定是队列空了. 队列(Queue)两端同意操作的类型不一样: 能够进行删除的一端称为队头,这样的操作也叫出队dequeue: 能够进行插

    前言 循环不管在程序中还是脚本中都需要经常用到,在写shell脚本时,经常需要for进行100次循环.这里谈谈几种从1到100的循环方法. 四种方法 C语言风格 for ((i=1; i<=100; i++)) do echo $i done Python风格(in的使用) for i in {1..100} do echo $i done Seq的使用 注意代码中不是单引号. for i `seq 1 100` do echo $i done 以上这篇Linux shell 实现用for循环1

    展开全文
  • 入坑这些年来,大哥一直有一个心病,那就是病入膏肓的循环语句恐惧症...... 觉得自己太怂了,都不敢跟大家说......我是真的真的,看到For Loops,While Loops就心跳加速,头皮发麻,fu吸困难。看到就Loops就恐惧,更...

    入坑这些年来,大哥一直有一个心病,那就是病入膏肓的循环语句恐惧症...... 觉得自己太怂了,都不敢跟大家说......

    我是真的真的,看到For Loops,While Loops就心跳加速,头皮发麻,fu吸困难。看到就Loops就恐惧,更别说让自己写了,感觉简直是要命...... 大家难免要问,接触数据分析这些年,总躲不了写Python Loops这个坑,大哥都是怎么水过的?其实读书期间完全没有编程的担忧,我读的项目都不用学Python和R...... Coursera上碰到要写相关作业,也总有课上老师写好的代码可以借(chao)鉴(chao)...... 靠着各种愉悦地调包,苟且至今......

    我最早接触Python的时候,是求CS小弟 @Hunting 帮我写了个一个爬知乎的代码,小弟还专(被)门(逼)写了一篇文章解释。快两年过去了,随着网站的更新,这个爬虫估计也爬不动了...... Anyway,当时天天逼着小弟一行行解释代码,学了一两个礼拜才整明白都是什么意思...... 但这些年来,对爬虫代码我也基本只处于“会远观不会亵玩”的状态,叫我写循环语句,我的妈,要命就一条!!!量子数据:50⾏python爬⾍代码, 带你正确打开知乎新世界!​zhuanlan.zhihu.com

    直到前阵子,终于下决心不能再怂下去了,翻出了两年前旁听过的Coursera课 -- Python for Everybody Specialization(University of Michigan),决定好好写作业拿个证~ 目前已经上完了前三门:Programming for Everybody(Getting Started with Python),Python Data Structures,Using Python to Access Web Data。经过了n次的代码作业摧残后,现在终于可以看到循环不再心虚犯喘了......

    三门课上下来,我觉得这一系列课极度引起舒适,从Python零基础教起,难度也在循序渐进。虽然上课的教授是比较严肃的大学风格,但讲解知识点还是挺清晰明了的。然鹅,我最喜欢的部分是 --代码作业!课上会有案例代码解释,课下让你参照案例完成代码作业,而且循环语句基本贯穿这个系列课程的代码作业,躲是躲不过的...... 写作业完全让我体验到了Python的乐趣,原来克服心病写出循环语句是多么有成就感的事情!!!每天带娃之余,上课写作业嗨到简直想起飞~~~ 一周时间就迅速刷完了三门课,等我上完第四门Using Databases with Python和第五门Capstone,再跟大家详细深扒这门课吧~~~

    曾经的我一心追求褥Coursera的羊毛,都是免费旁听课程,不写作业,但后来我真的深深,深深感受到了不写作业的严重弊端 -- 缺乏练习学得不够扎实,导致后来又花时间重新刷课...... 像我今天介绍的Python系列课,和Duke University的Managing Big Data with MySQL,都刷过至少两遍,旁听和写作业完成课程的感觉完全不一样,写作业一是巩固知识,二是完成以后特别有成就感~~~ 免费旁听就经常是迷迷糊糊刷过去了,过阵子又忘了...... 尤其是SQL和Python这两个重要技能,强烈建议还是老老实实交点钱,踏踏实实把技能学到手~~~

    另外我也试过廖雪峰老师的网红Python药,但上了前面一部分就没坚持下去了 = = 每个人prefer的学习方法都不太一样哈,我个人不太习惯看文字教程,喜欢看视频。而且我学Python特别愚钝,要学好多好多遍 = = 经过两年各种网课的锤炼,才成长成了一名”光荣的“Python调包侠~~~

    欢迎大家留言自己的Python学习历程~~~ 如果你还是枚Python数据分析小白,千万不要错过大哥呕心沥血翻译的pandas快速入门小教程哦!!!量子数据:哈哈哈 -- 哈?10分钟入门pandas!​zhuanlan.zhihu.com

    展开全文
  • 死循环可以通过的看上面两段代码, 唯一的不一样是第二个 while 循环里面多了一个输出语句. 一开始我以为是编译器对此进行了优化, 只取了一次ac.getSecond, 而第二段代码没有被编译器进行优化, 所以能够顺利通过单元...
  • 死循环可以通过的看上面两段代码, 唯一的不一样是第二个 while 循环里面多了一个输出语句.一开始我以为是编译器对此进行了优化, 只取了一次ac.getSecond, 而第二段代码没有被编译器进行优化, 所以能够顺利通过单元...
  • 谢谢你的观看~今天是我自学Java的第30天。你的观看便是对我最大的鼓励。​话不多说,开始今天的学习:很早的时候...其实很好理解,第一个while循环是死循环,如果我们不强行将程序停止的话,它是会无止境的永远运行...
  • 18.7.3 用while循环从文件中读取数据 189 18.7.4 使用IFS读文件 189 18.7.5 带有测试条件的文件处理 190 18.7.6 扫描文件行来进行数目统计 191 18.7.7 每次读一对记录 193 18.7.8 忽略#字符 193 18.7.9 处理格式化...
  • 进入死循环(程序将永远循环下去)。 为了能知道程序循环了多少次,应该在程序中增加一条什么样的语句? (3)、原程序中while语句中的y>=detax,分别换成y>detax,y=detax,y,y,观察程序运行将会有什么变化。 假如不...
  • shell编程和unix命令

    2015-02-16 15:41:39
    3.3.3 杀后台进程 28 3.4 nohup命令 29 3.4.1 使用nohup命令提交作业 29 3.4.2 一次提交几个作业 29 3.5 小结 30 第4章 文件名置换 31 4.1 使用* 31 4.2 使用? 32 4.3 使用[...]和[!...] 32 ...
  • Linux shell编程指南

    2015-05-29 22:40:12
    本书共分五部分,详细介绍了shell编程技巧,各种UNIX命令及语法,还涉及了UNIX下的文字处理以及少量的系统管理问题。本书内容全面、文字简洁流畅,适合Shell编程人员学习、参考。...18.7.10 while循环和文件描述...
  • 本书共分五部分,详细介绍了shell编程技巧,各种UNIX命令及语法,还涉及了UNIX下的文字处理以及少量的系统管理问题。本书内容全面、文字简洁流畅,适合Shell编程人员学习、参考。...18.7.10 while循环和文件描述...
  • 本书共分五部分,详细介绍了shell编程技巧,各种UNIX命令及语法,还涉及了UNIX下的文字处理以及少量的系统管理问题。本书内容全面、文字简洁流畅,适合Shell编程人员学习、参考。...18.7.10 while循环和文件描述符...
  • 18.7.3 用while循环从文件中读取数据 189 18.7.4 使用IFS读文件 189 18.7.5 带有测试条件的文件处理 190 18.7.6 扫描文件行来进行数目统计 191 18.7.7 每次读一对记录 193 18.7.8 忽略#字符 193 18.7.9 处理格式化...
  • LINUX与UNIX Shell编程指南.pdf

    热门讨论 2010-10-23 00:49:00
    LINUX与UNIX Shell编程指南.pdf 很经典的一本书, 是中文整合版的,不是多个小文件的压缩包; 还有完整的书签。 美 坦思利 Tansley,D 著 。 目 录 ...3.3.3 杀后台进程 28 ...18.7.10 while循环和...
  • 18.7.3 用 while 循环从文件中读取数据 189 18.7.4 使用 IFS 读文件 189 18.7.5 带有测试条件的文件处理 190 18.7.6 扫描文件行来进行数目统计 191 18.7.7 每次读一对记录 193 18.7.8 忽略#字符 193 18.7.9 ...
  • LINUX与UNIX SHELL编程指南(很全)

    热门讨论 2009-07-26 17:30:33
    18.7.3 用while循环从文件中读取数据 189 18.7.4 使用IFS读文件 189 18.7.5 带有测试条件的文件处理 190 18.7.6 扫描文件行来进行数目统计 191 18.7.7 每次读一对记录 193 18.7.8 忽略#字符 193 18.7.9 处理格式化...
  • 本书共分五部分,详细介绍了shell编程技巧,各种UNIX命令及语法,还涉及了UNIX下的文字处理以及少量的系统管理问题。本书内容全面、文字简洁流畅,适合Shell编程人员学习、参考。...18.7.10 while循环和文件描述...
  • 18.7.3 用while循环从文件中读取数据 189 18.7.4 使用IFS读文件 189 18.7.5 带有测试条件的文件处理 190 18.7.6 扫描文件行来进行数目统计 191 18.7.7 每次读一对记录 193 18.7.8 忽略#字符 193 18.7.9 处理格式化...
  • shell 编程指南pdf

    2011-09-24 20:27:57
    18.7.3 用while循环从文件中读取数据 189 18.7.4 使用IFS读文件 189 18.7.5 带有测试条件的文件处理 190 18.7.6 扫描文件行来进行数目统计 191 18.7.7 每次读一对记录 193 18.7.8 忽略#字符 193 18.7.9 处理格式化...
  • 本书共分五部分,详细介绍了shell编程技巧,各种UNIX命令及语法,还涉及了UNIX下的文字处理以及少量的系统管理问题。本书内容全面、文字简洁流畅,适合Shell编程人员学习、参考。...18.7.10 while循环和文件描述符...
  • 18.7.3 用while循环从文件中读取数据 189 18.7.4 使用IFS读文件 189 18.7.5 带有测试条件的文件处理 190 18.7.6 扫描文件行来进行数目统计 191 18.7.7 每次读一对记录 193 18.7.8 忽略#字符 193 18.7.9 处理格式化...
  • 18.7.3 用while循环从文件中读取数据 189 18.7.4 使用IFS读文件 189 18.7.5 带有测试条件的文件处理 190 18.7.6 扫描文件行来进行数目统计 191 18.7.7 每次读一对记录 193 18.7.8 忽略#字符 193 18.7.9 处理格式化...

空空如也

空空如也

1 2 3 4
收藏数 73
精华内容 29
关键字:

while死循环语句怎么写