每日分享:
不要只因一次挫败,就放弃了你原来决心想要达到的目的。
文章目录
一、echo命令
1、格式:
echo [参数] [字符串]
2、常用参数
常用参数 | 说明 |
---|---|
-n | 表示输出不换行 |
-E | 禁止反斜杠转义,与-e参数功能相反 |
-e | 输出转义字符,将转义后的内容输出到屏幕上 |
3、转义符
选项 | 作用 |
---|---|
\n | 输出换行 |
\r | 光标移至行首,不换行 |
\s | 当前shell的名称,如bash |
\t | 插入Tab键 |
\f、\v | 换行,但光标仍停留在原处 |
\ \ | 表示插入"\"本身 |
\b | 表示退格 不显示前一个字符 |
\c | 抑制更多的输出或不换行 |
二、for循环
- for 给了已知的取值列表,使用for是首选
- 循环操作一般会首选 for 去写
1、格式
格式:
for 变量名 in 取值列表
do
命令序列
done
2、例题
例题一、计算从1到100所有整数的和
#!/bin/bash
num=0
for i in `seq 1 1 100`
do
num=$[ num+i ]
done
echo $num
例题二、提示用户输入一个小于100的整数,并计算从1到该数之间所有整数的和
#!/bin/bash
read -p "请输入小于100的整数:" num
for ((i=1;i<=$num;i++))
do
sum=$[$sum + $i]
done
echo "$sum"
例题三、求从1到100所有整数的偶数和、奇数和
#!/bin/bash
a=0
b=0
for i in {2..100..2}
do
a=$[a + i]
let i++
done
echo "1到100所有整数的偶数和为$a"
for i in {1..100..2}
do
b=$[b + i]
let i++
done
echo "1到100所有整数的奇数和为$b"
例题四、用户输入密码,脚本判断密码是否正确,正确密码为123456,输入正确提示正确信息,连续输错3次则报警
#!/bin/bash
passwd="123456"
for ((i=3;i>=1;i--))
do
read -p "请输入密码:" num
if [ $num -eq $passwd ]
then
echo "密码正确"
exit
else
echo "密码错误"
if [ $i -eq 1 ]
then
echo "密码连续输错三次,已报警"
fi
fi
done
三、while循环
重复测试某个条件,只要条件成立,则反复循环,条件不成立则退出循环
1、格式
while 条件测试操作
do
命令序列
done
2、例题
例题一、计算从1到100所有整数的和
#!/bin/bash
m=0
n=0
while [ $n -le 100 ]
do
m=$[m + n]
let n++
done
echo "100以内的和" $m
例题二、提示用户输入一个小于100的整数,并计算从1到该数之间所有整数的和
#!/bin/bash
m=0
n=0
read -p "输入数值1-100:" num
while [ $n -le $num ]
do
m=$[m+n]
let n++
done
echo "100以内的和为:" $m
四、until循环
重复测试某个条件,只要条件不成立,则反复循环,条件成立则退出循环
1、格式
until 条件测试操作
do
命令序列
done
2、例题
例题一、计算从1到100所有整数的和
#!/bin/bash
sum=0
i=0
until [ $i -gt 100 ]
do
sum=$[sum+i]
let i++
done
echo "{1..100}的和:$sum"
五、双重循环和跳出循环
break和continue都是用来控制循环结构的,主要是停止循环
1、break
当满足条件的情况下break会跳出当前循环,break跳出单个循环后面加数字2则代表跳出两层循环
#!/bin/bash
for ((i=1;i<5;i++))
do
echo 此${i}为外部循环
for((j=1;j<4;j++))
do
if [ $j -eq 3 ]
then
break
fi
echo -e "\t此${j}为内部循环"
done
done
2、exit
当满足条件的情况下exit会直接退出当前脚本
#!/bin/bash
for ((i=1;i<5;i++))
do
echo 此${i}为外部循环
for((j=1;j<4;j++))
do
if [ $j -eq 3 ]
then
exit
fi
echo -e "\t此${j}为内部循环"
done
done
3、continue
continue会终止某次循环中的命令,但是不会完全终止命令
#!/bin/bash
for ((i=1;i<5;i++))
do
echo 此${i}为外部循环
for((j=1;j<4;j++))
do
if [ $j -eq 2 ]
then
continue
fi
echo -e "\t此${j}为内部循环"
done
done