linux基本操作---shell编程之 while循环

本文介绍了Shell脚本中while循环的基本用法,包括简单的数值累加案例和从文件读取内容的应用。通过实例演示了如何避免常见的语法错误,并解释了参数间需要使用空格分隔的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

java中我们经常用到while循环,那么shell中也有while循环:

while简单循环

直接看demo:

demo1: 求1-10的和

[root@dev-02 software]# cat while1to10.sh 
#!/bin/bash
i=1
while [ $i -le 10 ]
do
    sum=$((sum+i))
    i=$((i+1))
done
echo $sum


[root@dev-02 software]# sh while1to10.sh 
55

问题:
开始的时候 老是报错,我们的写法是

报错:
[root@dev-02 software]# sh while1to10.sh 
while1to10.sh: line 3: while[1 -le 10]: command not found
while1to10.sh: line 4: syntax error near unexpected token `do'
while1to10.sh: line 4: `do'

脚本:
[root@dev-02 software]# cat while1to10.sh 
#!/bin/bash
i=1
while[$i -le 10]
do
    sum=$((sum+i))
    i=$((i+1))
done
echo $sum

之后修改
while的参数之间需要用空格隔开,问题解决,这个语法真6,无语了,苦笑。

while读取文件内容:

读取文件,遍历every line ,有next line ,就echo line

[root@dev-02 software]# cat readwhile.sh 
#!/bin/bash
while read -r line
do
    echo $line
done < /etc/passwd



[root@dev-02 software]# sh readwhile.sh 
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
..
.

关于-r 我们看一下帮助文档,可以发现-r是不考虑转义字符。

-r Backslash does not act as an escape character. The backslash is considered to be part of the line. In par-
ticular, a backslash-newline pair may not be used as a line continuation.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值