2020-04-10 linux循环
时间:2020-04-10
本文章向大家介绍2020-04-10 linux循环,主要包括2020-04-10 linux循环使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
1.for循环
#!/bin/bash for i in 1 2 3 4 do echo $i done
$ chmod +x for.sh $ ./for.sh 1 2 3 4
如果要循环的内容是字母表里的连续字母或连续数字
#!/bin/bash for x in {a..d} do echo $x done
$ ./for.sh a b c d
2.while循环
#!/bin/bash n=1 while [ $n -le 4 ] do echo $n ((n++)) done
$ chmod +x while.sh $ ./while.sh 1 2 3 4
循环次数比较少的情况下,for 循环与 while 循环效果差不多,但如果循环次数比较多,比如 10 万次,那么 while 循环的优势就体现出来了。
3.循环嵌套
#!/bin/bash n=1 while [ $n -lt 4 ] do for l in {a..c} do echo $n$l done ((n++)) done
$ chmod +x while_with_for.sh $ ./while_with_for.sh 1a 1b 1c 2a 2b 2c 3a 3b 3c
4.死循环
#!/bin/bash while true do echo -n "Still running at " date sleep 1 done
Ctrl C 终止死循环
5.按行读取文本内容
#!/bin/bash echo -n "Enter file> " read file n=0 while read line;
do ((n++)) echo "$n: $line" done < $file
在这里,使用 read 命令将文本文件的内容读取存入 file 变量,然后再使用重定向(上述脚本最后一行)将 file 内容依次传入 while 循环处理再打印出来。
$ chmod +x file.sh $ ./file.sh Enter file> test.txt #test.txt为同一目录下的文本文件 1:line1 2:I am line2: 3:line3
6.变量检查
#!/bin/bash echo -n "How many times should I say hello? " read ans if [ "$ans" -eq "$ans" ]; then echo ok1 fi if [[ $ans = *[[:digit:]]* ]]; then echo ok2 fi if [[ "$ans" =~ ^[0-9]+$ ]]; then echo ok3 fi
第一种方法看起来似乎是个废话,但实际上,-eq
只能用于数值间判断,如果是字符串则判断不通过,所以这就保证了 ans 是个数值型变量。
第二种方法是直接使用 Shell 的通配符对变量进行判断。
第三种方法就更直接了,使用正则表达式对变量进行判断。
再看一个例子:
#!/bin/bash echo -n "How many times should I say hello? " read ans if [ "$ans" -eq "$ans" ]; then n=1 while [ $n -le $ans ] do echo hello ((n++)) done fi
在这个脚本里,将要循环的次数传入到 ans 变量,然后脚本就具体打印几次 hello 。为了保证我们传入的内容是数字,我们使用了 if [ "$ans" -eq "$ans" ]
语句来判断。如果我们传入的不是数字,则不会进入 while 循环。
7.其他用法
#!/bin/bash $ echo -n "hostname" $ echo `hostname`
$ chomd +x other_usage.sh $ ./other_usage.sh hostname: ubuntu
注意:echo `hostname` 执行系统命令时需要用``而不是‘’
原文地址:https://www.cnblogs.com/cxl-blog/p/12672496.html
- 腾讯云Fintech云端系列论坛首站北京,揭秘如何全链路赋能互联网金融
- Flask入门笔记(一)
- 刷脸还是指纹识别,that's a question
- c#:使用using关键字自动释放资源未必一定就会有明显好处
- MongoDB 学习笔记(原创)
- Silverlight:ScorllViewer随Tab键自动跟随子控件的Focus滚动
- 老域名做新站如何能快速得上首页?
- Silverlight:分包下载及SEO优化方案
- jQuery调用RESTful WCF示例(GET方法/POST方法)
- "RDLC"报表-参数传递及主从报表
- 初探小程序之运营及未来方向
- 微信小程序深夜开放NFC等连接能力,未来可直接刷公交?
- Silverlight:获取ContentTemplate中的命名控件
- silverlight向wcf传递大于8192字节(8k)的字符串
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法