目录
一、理论
1.for循环
2.echo命令
二、实验
1.实验一
2.实验二
3.实验三
4.实验四
5.实验五
6.实验六
7.实验七
8.实验八
9.实验九
一、理论
1.for循环
(1)for循环的常见用法
① 带列表的for循环
带列表的for循环用于执行一定次数的循环,其语法结构如下:
for 变量名 in 取值列表
do
命令序列
done
for VARIABLE in (list)
do
command
done
for fruit in apple orange banana pear
do
echo "最爱吃的水果:$fruit"
done
echo "没有其他爱吃"
[root@localhost ~]# sh fruit.sh
最爱吃的水果:apple
最爱吃的水果:orange
最爱吃的水果:banana
最爱吃的水果:pear
没有其他爱吃
也可以将列表的内容换成变量,循环的时候读取变量的值;或者in后面的内容可以是任意命令的标准输出。例如:
sum=0
for VAR in `seq 1 100`
do
let "sum+=VAR"
done
echo "总和是: $sum"
~
[root@localhost ~]# sh sum.sh
总和是: 5050
② 不带列表的for循环
不带列表的for循环如下所示:
for VARIABLE in (list)
do
command
done
使用不带列表的for循环时,需要运行脚本时通过参数的方式给变量传值。例如:
sum=0
for VAR
do
let "sum+=VAR"
done
echo "总和是: $sum"
[root@localhost ~]# sh sum.sh 7 8 9
总和是: 24
③ 类C的for循环
shell支持类C的for循环,语法结构如下:
for ((expression1;expression2;expression3))
do
command
done
for ((i=1,j=100;i<=10;i++,j--))
do
echo "i=$i,j=$j"
done
~
~
[root@localhost ~]# sh for.sh
i=1,j=100
i=2,j=99
i=3,j=98
i=4,j=97
i=5,j=96
i=6,j=95
i=7,j=94
i=8,j=93
i=9,j=92
i=10,j=91
④ for的无限循环
无限循环又叫死循环,使用类C的for循环,只要保证expression2条件为真即可,会一直运行,直到按下Ctrl+C组合键
for ((i=0;i<1;i+=0))
do
echo "i=$i"
done
~
i=0
i=0
i=0
i=0
i=0
i=0
i=0
i=0
i=0
i=0
i=0
^C
(2)for循环原理
for语句需要定义一个变量和取值列表,根据不同的取值执行相同的命令,知道变量值用完。
取值列表里包含多个属性相同的对象,例如:IP地址,通信录等。
2.echo命令
echo用于输出字符串或提取Shell变量的值
格式:echo [参数] [字符串]
表1 常用转义符号及含义
转义符号 | 含义 |
-n | 表示输出不换行 |
-E | 禁止反斜杠转义,与-e参数功能相反 |
-e | 输出转义字符,将转义后的内容输出到屏幕上 |
\b | 相当于退格键,但前提是“\b”后存在字符;“\b"表示删除前一个字符;”\b\b"表示删除前两个字符 |
\c | 不换行输出。后面无字符时相当于 echo -n;"\c"后有字符时,将不被输出 |
\n | 换行,但是换行后的新行从“\n”处开始另起一行 |
\f | 换行,但是换行后的新行的开头位置连接着上一行的行尾 |
\v | 与\f相同-E 禁止反斜杠转义,与-e参数功能相反 |
\t | 转义后表示插入tab,即横向制表符 |
\r | 光标移至行首,但不换行,相当于使用“\r”以后的数字覆盖之前相等长度的字符 |
| 表示插入“\”本身 |
(1)echo -n 不换行输出
echo a
echo b
echo c
echo "......"
echo -n a
echo -n b
echo -n c
[root@localhost ~]# sh test.sh
a
b
c
......
abc[root@localhost ~]#
(2)echo -e 转义字符; \b退格 不换行输出
删除相应个数的字
[root@localhost ~]# echo -e "abcd"
abcd
[root@localhost ~]# echo -e "abc\bd"
abd
[root@localhost ~]# echo -e "ab\b\bcd"
cd
(3)echo -e \c 不换行输出
[root@localhost ~]# echo -e "abcd\c"
abcd[root@localhost ~]#
(4)echo -e \n 换行输出
可在末尾
abcd[root@localhost ~]# echo -e "abcd\n"
abcd
也可以在中间
[root@localhost ~]# echo -e "ab\ncd"
ab
cd
(5)echo -e \f、\v换行输出
[root@localhost ~]# echo -e "abcd\fnice"
abcd
nice
[root@localhost ~]# echo -e "abcd\vbeauty"
abcd
beauty
(6)echo -e \r 光标移至行首不换行
[root@localhost ~]# echo -e "abcd\r123"
123d
二、实验
1.实验一
计算从1到100所有整数的和
(1)脚本截图
(2)运行结果
2.实验二
提示用户输入一个小于100的整数,并计算从1到该数之间所有整数的和
(1)脚本截图
(2)运行结果
3.实验三
求从1到100所有整数的偶数和、奇数和
偶数和
(1)脚本截图
(2)运行结果
奇数和
(1)脚本截图
(2)运行结果
4.实验四
用户名存放在users.txt文件中,每行一个,判断文件里的用户是否存在,若该用户存在,输出提示该用户已存在;用户存在但没设密码,则提示用户并让用户设置密码;若该用户不存在,提示用户输入密码,建立用户并设立其密码
(1)脚本截图
(2)运行结果
用户不存在
用户存在密码不存在
5.实验五
检测指定范围主机是否通信,并将通信的主机ip输出到文件host_ip中
(1)脚本截图
(2)运行结果
6.实验六
用户输入密码,脚本判断密码是否正确,正确密码为123456,输入正确提示正确信息,连续输错3次则报警
(1)脚本截图
(2)运行结果
7.实验七
使用循环语句将一个 0到255 之间的十进制数转换成8位数二进制数
减法
(1)脚本截图
(2)运行结果
除基逆序取余
(1)脚本截图
(2)运行结果
8.实验八
某山顶上有一颗香蕉树,一只猴子第一天从树上摘了若干根香蕉,当即就吃了一半,还不过瘾,又多吃了一根。第二天猴子又将剩下的香蕉吃了一半,禁不住诱惑,又多吃了一根香蕉。依此类推,每天都将剩余的香蕉吃一半后再多吃一根。到了第十天,猴子发现只剩一根香蕉了,请问这只猴子在第一天总共摘了多少根香蕉?
(1)脚本截图
(2)运行结果
9.实验九
(1)99乘法表
(2)倒三角 99乘法表
文章来源:https://www.toymoban.com/news/detail-462410.html
文章来源地址https://www.toymoban.com/news/detail-462410.html
到了这里,关于Shell脚本攻略:循环语句for的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!