一、循环语句
echo命令
echo -n 表示不换行输出
echo -e 表示输出转义符
常用的转义符
选项 | 作用 |
---|---|
\r | 光标移至行首,并且不换行 |
\s | 当前shell的名称,如bash |
\t | 插入Tab键,制表符 |
\n | 输出换行 |
\f | 换行,但光标仍停留在原处 |
\ | 表示插入“\”本身转义 |
\b | 表示退格 不表示前一个字符 |
\c | 抑制更多的输出或不换行 |
date
date显示当前系统时间
-d 你描述的日期,显示指定字符串所描述的时间,而非当前时间
%F 完整日期格式,等价于 %Y-%m-%d
% T 时间(24小时制)(hh:mm:ss)
seq
循环:将某段代码段重复运行多次,通常由进入循环的条件和退出循环的条件
重复运行次数,包含:
- 循环次数已知
- 循环次数未知
常见的循环命令有:for、while和until
1.for
语法结构
- 列表循环
- 不带列表循环
- 带C风格的for循环
1.1 列表循环
语法:
for 变量名 in {list}
do
command
done
1.2 不带列表循环
1.3 类似于C语言的风格的for循环
语法:
for((expr1;expr2;expr3))
do
command
done
expr1:定义变量并赋予初值
expr2:决定是否循环
expr3:决定循环变量如何决定,决定循环什么时候退出
sum+=i等同于sum=sum+i
++ | 自身变量+1 |
---|---|
-- | 自身变量-1 |
+=5 | 自身变量+5 |
-=5 | 自身变量-5 |
*=5 | 自身变量*5 |
/=5 | 自身变量/5 |
%=5 | 自身变量%5 |
举例
执行机制:
依次将列表中的元素赋值给变量名,每次赋值后即执行一次循环体;直到列表中的元素耗尽,循环结束。
如果省略[in WORDS ...],此处使用位置参数变量 in "$@"
示例一
示例二
示例三
示例四
示例五
示例六
示例七
示例八
二. while
我们只知道停止条件,不知道次数,就需要使用while,直到达到条件
while循环一般用于有条件判断的循环,若判断条件为真,则进入循环,当条件为假就跳出循环
while :
do
donewhile
当命令判断为假时停止while死循环
while [ 1 -eq 1 ] //写一个永远为真的表达式,1等于1这个条件永远为真,所以这个脚本会一直循环下去
do
command
done
while true
do
command
donewhile :
do
command
done
求和
示例一
示例二
示例三
示例四
示例五
示例六-批量建立用户
示例七-猜价格游戏
三. 双重循环及跳出循环
- break跳出单个循环 break n 数字,数字是几就代表跳出n层循环
- continue终止某次循环中的命令,但是不会完全终止命令
- exit 直接退出脚本
示例一--结束某次循环
示例二--结束一层循环
示例三--多层跳出
四. until
until 循环语句的语法:
until 条件测试操作
do
命令序列
done
示例一--求和
示例二-- 发送用户名和信息
示例三--菜单
示例四--系统
4.1.正则表达式
. | 代表任意字符 |
---|---|
[] | 代表单个字符 |
* | 前面字符出现0~正无穷 |
+ | 1~正无穷 |
{3} | 3次 |
{n} | n次 |
{n,} | 最少n次 |
{,n} | 最多n次 |
{n,m} | n到m次 |
^ | 开头 |
$ | 结尾 |
\b | 字符串的开头结尾 |
\ | 转义 |
.* | 1~正无穷 |